@[TOC]
查閱hadoop2.7.3的文檔我們可以看到hadoop2.7.3在搭建高可用的時候使用的是zookeeper-3.4.2版本,是以我們也按照hadoop官網的提示,接下來我們安裝zookeeper-3.4.2版本.進入官網下載下傳ZooKeeper3.4.2版本
官網位址:<code>https://zookeeper.apache.org/</code>
點選<code>Download</code>
将目錄切換到zookeeper的安裝目錄下的conf目錄下複制zoo_sample.cfg檔案為zoo.cfg
修改dataDir的值為 dataDir=/var/lib/zookeeper,在檔案的末尾添加如下配置:
修改完配置檔案記得儲存
在節點node1,node2,node3對應的/var/lib/zookeeper目錄下(dataDir配置的錄/var/lib/zookeeper)建立myid檔案,幾個檔案内容依次為1,2,3。切換到root使用者,在/var/lib目錄下建立zookeeper目錄,因為hadoop使用者對/var/lib目錄沒有寫權限,是以我們在建立zookeeper目錄時需要切換到
修改node2節點zookeeper 相關目錄權限
修改node3節點zookeeper 相關目錄權限
修改node2節點zookeeper 的myid内容為2:
修改node3節點zookeeper 的myid内容為3
我們在node1節點上直接将hadoop使用者的環境變量配置檔案遠端複制到node2和node3的hadoop使用者家目錄下
使得node2的hadoop的環境變量生效
使得node3的hadoop的環境變量生效
啟動zookeeper叢集需要手動分别依次在三台機器上啟動,啟動前需要在三台機器上都将使用者切換為hadoop使用者.
node1上啟動zookeeper
node2上啟動zookeeper
node3上啟動zookeeper
使用zkServer.sh status指令在三個節點分别執行檢視狀态
在node1上檢視
在node2上檢視
在node3上檢視
至此我們zookeeper叢集安裝完成.
由于按照hadoop2.7.3版本官方文檔中使用zookeeper-3.4.2版本,但是zookeeper-3.4.2版本比較低,我們在啟動zookeeper後,可以使用jps指令或者ps -ef|grep zookeeper指令檢視zookeeper主程序的狀态,但是我們發現是正常的,如果我們使用zkServer.sh status指令檢視zookeeper的狀态卻顯示是異常的,不管啟動多少次都會得到同樣的結果。
分析主要有以下兩個原因造成:
1.centos7上沒有安裝nc工具.
2.zookeeper啟動腳本中的nc指令在不同的linux版本中使用了無效的參數導緻擷取狀态異常或者擷取的狀态為
空狀态導緻的。
解決方法:
1.使用yum 在三個節點上分别安裝nc工具
2.修改zookeeper安裝目錄下的bin目錄下的zkServer.sh腳本檔案内容
修改完成後我們在使用zkServer.sh status就能看到zookeeper的狀态了