Zookeeper集群搭建
1.下載Zookeeper
從Zookeeper官網(http://zookeeper.apache.org/)下載Zookeeper
apache-zookeeper-3.6.0-bin.tar.gz
准備3台虛機(這里名稱為hadoop5,hadoop6,hadoop7),將安裝包上傳到一台虛機上
2.解壓
tar解壓到特定的文件夾中
[hadoop@hadoop5 install-pkg]$ tar zxvf apache-zookeeper-3.6.0-bin.tar.gz -C ../app
3.修改配置
先進入Zookeeper文件目錄下的conf文件夾
[hadoop@hadoop5 conf]$ mv zoo_sample.cfg zoo.cfg //將zoo_sample.cfg修改為zoo.cfg將在里面進行配置
[hadoop@hadoop5 conf]$ vim zoo.cfg //修改配置信息
- tickTime=2000 心跳間隔
- initLimit=10 初始容忍的心跳數
- syncLimit=5 等待最大容忍的心跳數
- dataDir=/tmp/zookeeper 本地保存數據的目錄,tmp存放的臨時數據,可以修改為自己的目錄
- clientPort=2181 客戶端默認端口號
其中主要修改 dataDir (這里我指定到了Zookeeper目錄下的data文件夾,后面會創建)
然后在最后面添加,保存退出。
server.1=hadoop5:2888:3888 (主機名, 心跳端口、數據端口) server.2=hadoop6:2888:3888 server.3=hadoop7:2888:3888
4.創建data目錄
因為上一步 dataDir 指定了一個目錄,如果沒有那個data文件夾,所以需要創建對應目錄。
然后在data目錄創建一個文件myid,里面寫一個1:
echo 1 >> myid //這里的id對應上一步server.1
5.拷貝到其他兩台機器上
[hadoop@hadoop5 app]$ scp -r apache-zookeeper-3.6.0-bin/ hadoop6:/home/hadoop/app [hadoop@hadoop5 app]$ scp -r apache-zookeeper-3.6.0-bin/ hadoop7:/home/hadoop/app
對應其他兩台機器去修改data目錄下的 myid 為 2 和 3
6.啟動Zookeeper
進入bin目錄,啟動Zookeeper,jps查看進程是否啟動(其他兩台機器用同樣的方式啟動)
[hadoop@hadoop5 bin]$ ./zkServer.sh start
[hadoop@hadoop5 bin]$ jps
最后查看ZK的狀態:
[hadoop@hadoop5 bin]$ ./zkServer.sh status
7.一鍵啟動Zookeeper
由於去三台機器啟動Zookeeper太麻煩,所以可以編寫一個一鍵啟動腳本。
①首先先將Zookeeper配置到環境變量
vi /etc/profile
添加如下: #---------------------zookeeper-------------------------- export ZOOKEEPER_HOME=/home/hadoop/app/apache-zookeeper-3.6.0-bin export PATH=$PATH:$ZOOKEEPER_HOME/bin #-------------------------------------------------------
保存
source /etc/profile
②編寫腳本
新建一個文件夾存放自己寫的腳本
編寫啟動腳本 zk-start.sh
#!/bin/bash echo "--------start zkServer------" echo "--hadoop5,hadoop6,hadoop7---"
for host in 5 6 7
do ssh hadoop$host "source /etc/profile; /home/hadoop/app/apache-zookeeper-3.6.0-bin/bin/zkServer.sh start"
if [$? -ne 0];then echo "$host zk failure"
else echo "$host zk start successful" fi done
編寫停止腳本 zk-stop.sh
#!/bin/bash echo "--------start zkServer------" echo "--hadoop5,hadoop6,hadoop7---"
for host in 5 6 7
do ssh hadoop$host "source /etc/profile; /home/hadoop/app/apache-zookeeper-3.6.0-bin/bin/zkServer.sh stop"
if [$? -ne 0];then echo "$host zk stop failure"
else echo "$host zk stop successful" fi done
③將啟動腳本加入到環境變量
vi /etc/profile
添加如下:
#---------------------my-scripts--------------------- export MY_SCRIPTS=/home/hadoop/my-scripts export PATH=$PATH:$MY_SCRIPTS #-----------------------------------------------------
保存
source /etc/profile
8.測試啟動
[hadoop@hadoop5 my-scripts]$ zk-start.sh
啟動成功,再測試停止:
[hadoop@hadoop5 my-scripts]$ zk-stop.sh
到此,Zookeeper集群搭建就完成了。