我以三台機器(centOs 虛拟機)為例 搭建zookeeper叢集
1.通過Xshell連接配接時,首先三台虛拟機的ip要在windows的hosts檔案中配置 ,友善我們進入某台虛拟機不用輸ip
如: 192.168.80.80 hadoop01
192.168.80.90 hadoop02
192.168.80.91 hadoop03
192.168.80.130 hhhhh
其次 為了在linux系統中進行跨網絡傳輸 ,在各台linux的 /etc/hosts 也要配置如上操作
2.上傳zookeeper的壓縮包 以及jdk的tar包
解壓縮jdk 在/etc/profile中最後配置 JAVA_HOME=/home/software/jdk1.7
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
3.配置zookeeper
在conf目錄下 複制zoo_sample.cfg 為zoo.cfg
在zoo.cfg的末尾加上(叢集有幾台zooke就寫幾個server.)
server.1 = hadoop01:2888:3888
server.2 = hadoop02:2888:3888
server.3 = hadoop03:2888:3888
修改zoo.cfg中的Datadir 的位址 例如:zookeeper下建立一個tmp檔案夾
在建立的tmp檔案夾下建立一個檔案myid 輸入1
在其他的機器上做同樣的配置,但是要修改的是myid中的值為n
可以通過網絡傳輸直接将配置好的檔案發送到不同的機器中
舉例:我的叢集 scp /home/software/zookeeper/ [email protected]:/home/software/zookeeper/
然後再修改myid中的值
4.啟動和關閉
首先 對外開放2888和3888的端口 這個端口一個是投票選舉leader的 一個是保持資料一緻性的
或者關閉防火牆
在zookeeper的bin目錄下 ./zkServer.sh start 啟動
./zkServer.sh stop 停止
./zkServer.sh status 檢視狀态 這個可以看到目前的機器是leader還是follow
5.可以通過./zkCli.sh 來進入用戶端