這篇文章主要介紹了如何安裝配置zookeeper集群,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
公司主營業(yè)務:成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出古縣免費做網(wǎng)站回饋大家。
1、解壓zookeeper
2、在$ZOOKEEPER_HOME/conf下創(chuàng)建zoo.cfg文件(參考配置文件:zoo_sample.cfg),內(nèi)容為:
# CS通信心跳時間,Zookeeper 服務器之間或客戶端與服務器之間維持心跳的時間間隔,也就是每個 tickTime 時間就會發(fā)送一個心跳。tickTime以毫秒為單位 tickTime=2000 # LF初始化通信時限,集群中的follower服務器(F)與leader服務器(L)之間初始連接時能容忍的最多心跳數(shù)(tickTime的數(shù)量) initLimit=10 # LF同步通信時限,集群中的follower服務器與leader服務器之間請求和應答之間能容忍的最多心跳數(shù)(tickTime的數(shù)量)。 syncLimit=5 #數(shù)據(jù)文件目錄,Zookeeper保存數(shù)據(jù)的目錄,默認情況下,Zookeeper將寫數(shù)據(jù)的日志文件也保存在這個目錄里。 dataDir=/root/app/zookeeper/data #客戶端連接端口,客戶端連接 Zookeeper 服務器的端口,Zookeeper 會監(jiān)聽這個端口,接受客戶端的訪問請求。 clientPort=2181 #服務器名稱與地址:集群信息(服務器編號,服務器地址,LF通信端口,選舉端口) #這個配置項的書寫格式比較特殊,規(guī)則如下: #server.N=YYY:A:B server.1=hadoop.master:2888:3888 server.2=hadoop.slave:2888:3888 #端口 #2181:用于客戶端的連接 #2888:follower與leader通信 #3888:leader選舉端口
3、根據(jù)zoo.cfg在dataDir配置的路徑下創(chuàng)建myid文件,且輸入server.N的N內(nèi)容(例如:當前機器是server.1,那么在 myid中輸入1)
4、復制配置完畢的zookeepr到其他節(jié)點
scp -r $ZOOKEEPER_HOME root@hostname:/home
5、復制完畢之后記得修改myid
6、在各個節(jié)點上分別啟動腳本:
$ZOOKEEPER_HOME/bin/zkServer.sh start
7、檢查命令
7.1、#zkServer.sh status //如果出現(xiàn)Error contacting service. It is probably not running.錯誤,是因為節(jié)點只啟動了一個,無法啟動集群模式 7.2、#echo ruok | nc localhost 2181 //如果命令成功會返回imok(I'm ok)
8、zk客戶端
$ZOOKEEPER_HOME/bin/zkCli.sh -server hostname:2181 //啟動一個zk客戶端 //最終要記住一個help命令即可掌握其他命令的用法 (操作之前需要了解類似文件系統(tǒng)的znode, 簡單描述:zk中所有節(jié)點都是znode節(jié)點,znode節(jié)點不僅可以作為目錄還可以存儲數(shù)據(jù).) CREATE 創(chuàng)建znode SET 設(shè)置znode的數(shù)據(jù) GET 查詢znode RMR 刪除znode ...等等自行查詢
9、Java客戶端
相關(guān)代碼:
import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; public class ZKClient { // 連接地址 private final static String CONN = "192.168.1.200:2181"; // client與zk超時時間(unit:ms) private final static int SESSION_TIMEOUT = 5000; public static void main(String[] args) throws Exception { //1、持久節(jié)點:創(chuàng)建的節(jié)點成功時,節(jié)點便會持久化在zk上 //2、臨時節(jié)點:創(chuàng)建節(jié)點過程中一旦發(fā)生有意或無意的客戶端超時或者關(guān)閉,節(jié)點都被刪除 ZooKeeper zk = new ZooKeeper(CONN, SESSION_TIMEOUT, new Watcher() { @Override public void process(WatchedEvent event) { //接收zk各個時間通知 System.out.println("------------------------"); System.out.println("Path:"+event.getPath()); System.out.println("type:"+event.getType()); System.out.println("state"+event.getState()); System.out.println("wrapper:"+event.getWrapper()); System.out.println("------------------------"); } }); String path = "/hello"; byte[] data = "testhello!".getBytes(); zk.create(path,data, Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); zk.close(); } }
感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何安裝配置zookeeper集群”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!