這篇文章一共說了三個方面:Zookeeper分佈式部署、 與集羣交流shell操作、與集羣交流Java API操作
1.Zookeeper分佈式部署
搭建在很多臺虛擬機上,就像是上一篇文章所說,需要有奇數個服務器才能投票,所以我們用2N+1臺服務器來組成,所以我們就用3臺就好啦
①下載zookeeper安裝包
可以從官網上下載,也可以直接用這個 zookeeper安裝包 password:60xn
②上傳解壓
用xshll傳到虛擬機上
下面開始解壓(記得把集羣啓動起來 start-all.sh)輸入:tar -zxvf zookeeper-3.4.11.tar.gz -C /export/servers/
③添加並修改配置文件
把文件複製一份改個名,輸入:cp zoo_sample.cfg zoo.cfg 之後vim它,修改這些
輸入:
server.1=hadoop01:2888:3888
server.2=hadoop02:2888:3888
注意:這個2888和3888分別是通信端口和選舉端口
④.配置環境變量(不配也沒事,配了方便使用寫好的腳本,就像hadoop一樣)
在 /export/servers/zookeeper-3.4.11/bin目錄下是那些腳本,一會要將這個bin寫在環境文件中(找找規律,記一下)最後在重新加載一下環境變量,輸入:source /etc/profile
⑤建立myid文件,將數值輸入到myid,對應關係是--->裏面內容是server.n中的n(例如:server.2裏面的內容爲2)
⑥把配置好的東西發給hadoop02.03
輸入:scp -r /export/servers/zookeeper-3.4.11/ hadoop02:/export/servers/ (02.03都要分發)
之後再把環境變量發過去
輸入:scp /export/data hadoop03:/export/data 02也要
⑦修改myid的內容 (記得source /etc/profile一下)
echo "2" > myid echo "3" > myid
⑧重新加載一下配置文件source /etc/profile ,三臺都這麼操作 之後輸入:zkServer.sh start
噔噔噔噔!可以看到zookeeper服務啓動成功。QuorumPeerMain進程成功
再查一下集羣的狀態,誰是老大誰是小弟 輸入:
第一臺是小弟
第二臺是大哥
第三臺是小弟
注:啓動關閉命令 zkServer.sh start /stop
(如果有啥問題,可以試着看看防火牆!!!)
2.與集羣交流shell操作
集羣可以用shell進行操作,也就說是命令行控制,通過命令對Zookeeper進行訪問和控制
1.查看啓動信息 輸入:zkCli.sh -sever hadoop01:2181(2128這個端口是在之前配置好的)(注意看最下面那行,咱們已經進去了zookeeper)
2.查看包含內容 輸入: ls /
3.輸出當前節點數據並且看到更新次數等數據 輸入:ls2 /
4.創建臨時節點 輸入:create -e /test-node-temp testtemp
5.獲取指定節點的數據內容以及屬性 輸入:get /test-node-temp testtemp
6.修改節點內容 例如:修改test-node-temp節點內容爲longshisan
7.監聽節點變化 輸入:get /test-node-temp watch (我看了看實驗現象,不知道那裏變了,不知道監聽了個啥子)
8.刪除節點 輸入命令: delete /test rmr /test
附錄:zookeeper中一共可以用這些命令(quit退出)
3.與集羣交流Java API操作
Zookeeper API包含五個包,在org.apache.zookeeper包含Zookeeper類,這個類提供常用的Java API方法
1.新建meven工程,在pom.xml下添加包,和之前基本一樣,唯一不一樣的地方是多了一個zookeeper依賴(截圖和代碼我都沒有把其他依賴加進去,還有common依賴,hdfs依賴,client依賴,junit測試jar包)
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.10</version>
</dependency>
2.接下來是new一個包,包裏new一個class ,之後在後面配置文件,打印一些東西,
3.創建一個目錄
4.創建一個子目錄節點
5.取出子目錄節點列表
6.修改子目錄節點數據
7.創建另外一個子目錄節點
8.刪除子目錄節點
9.刪除父目錄節點