您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何安裝配置zookeeper集群,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1、解壓zookeeper
2、在$ZOOKEEPER_HOME/conf下創(chuàng)建zoo.cfg文件(參考配置文件:zoo_sample.cfg),內(nèi)容為:
# CS通信心跳時(shí)間,Zookeeper 服務(wù)器之間或客戶(hù)端與服務(wù)器之間維持心跳的時(shí)間間隔,也就是每個(gè) tickTime 時(shí)間就會(huì)發(fā)送一個(gè)心跳。tickTime以毫秒為單位 tickTime=2000 # LF初始化通信時(shí)限,集群中的follower服務(wù)器(F)與leader服務(wù)器(L)之間初始連接時(shí)能容忍的最多心跳數(shù)(tickTime的數(shù)量) initLimit=10 # LF同步通信時(shí)限,集群中的follower服務(wù)器與leader服務(wù)器之間請(qǐng)求和應(yīng)答之間能容忍的最多心跳數(shù)(tickTime的數(shù)量)。 syncLimit=5 #數(shù)據(jù)文件目錄,Zookeeper保存數(shù)據(jù)的目錄,默認(rèn)情況下,Zookeeper將寫(xiě)數(shù)據(jù)的日志文件也保存在這個(gè)目錄里。 dataDir=/root/app/zookeeper/data #客戶(hù)端連接端口,客戶(hù)端連接 Zookeeper 服務(wù)器的端口,Zookeeper 會(huì)監(jiān)聽(tīng)這個(gè)端口,接受客戶(hù)端的訪(fǎng)問(wèn)請(qǐng)求。 clientPort=2181 #服務(wù)器名稱(chēng)與地址:集群信息(服務(wù)器編號(hào),服務(wù)器地址,LF通信端口,選舉端口) #這個(gè)配置項(xiàng)的書(shū)寫(xiě)格式比較特殊,規(guī)則如下: #server.N=YYY:A:B server.1=hadoop.master:2888:3888 server.2=hadoop.slave:2888:3888 #端口 #2181:用于客戶(hù)端的連接 #2888:follower與leader通信 #3888:leader選舉端口
3、根據(jù)zoo.cfg在dataDir配置的路徑下創(chuàng)建myid文件,且輸入server.N的N內(nèi)容(例如:當(dāng)前機(jī)器是server.1,那么在 myid中輸入1)
4、復(fù)制配置完畢的zookeepr到其他節(jié)點(diǎn)
scp -r $ZOOKEEPER_HOME root@hostname:/home
5、復(fù)制完畢之后記得修改myid
6、在各個(gè)節(jié)點(diǎn)上分別啟動(dòng)腳本:
$ZOOKEEPER_HOME/bin/zkServer.sh start
7、檢查命令
7.1、#zkServer.sh status //如果出現(xiàn)Error contacting service. It is probably not running.錯(cuò)誤,是因?yàn)楣?jié)點(diǎn)只啟動(dòng)了一個(gè),無(wú)法啟動(dòng)集群模式 7.2、#echo ruok | nc localhost 2181 //如果命令成功會(huì)返回imok(I'm ok)
8、zk客戶(hù)端
$ZOOKEEPER_HOME/bin/zkCli.sh -server hostname:2181 //啟動(dòng)一個(gè)zk客戶(hù)端 //最終要記住一個(gè)help命令即可掌握其他命令的用法 (操作之前需要了解類(lèi)似文件系統(tǒng)的znode, 簡(jiǎn)單描述:zk中所有節(jié)點(diǎn)都是znode節(jié)點(diǎn),znode節(jié)點(diǎn)不僅可以作為目錄還可以存儲(chǔ)數(shù)據(jù).) CREATE 創(chuàng)建znode SET 設(shè)置znode的數(shù)據(jù) GET 查詢(xún)znode RMR 刪除znode ...等等自行查詢(xún)
9、Java客戶(hù)端
相關(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超時(shí)時(shí)間(unit:ms) private final static int SESSION_TIMEOUT = 5000; public static void main(String[] args) throws Exception { //1、持久節(jié)點(diǎn):創(chuàng)建的節(jié)點(diǎn)成功時(shí),節(jié)點(diǎn)便會(huì)持久化在zk上 //2、臨時(shí)節(jié)點(diǎn):創(chuàng)建節(jié)點(diǎn)過(guò)程中一旦發(fā)生有意或無(wú)意的客戶(hù)端超時(shí)或者關(guān)閉,節(jié)點(diǎn)都被刪除 ZooKeeper zk = new ZooKeeper(CONN, SESSION_TIMEOUT, new Watcher() { @Override public void process(WatchedEvent event) { //接收zk各個(gè)時(shí)間通知 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(); } }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何安裝配置zookeeper集群”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。