1 虛擬機配置
序號 | 操作系統 | CPU/核數 | 內存/GB | 硬盤/GB | IP地址 |
---|---|---|---|---|---|
1 | Ubuntu 64 位 | 1 | 2 | 20 | 192.168.0.131 |
2 | Ubuntu 64 位 | 1 | 2 | 20 | 192.168.0.132 |
3 | Ubuntu 64 位 | 1 | 2 | 20 | 192.168.0.133 |
2 安裝JDK
hadoop@ubuntu:~$: tar -zxvf java.tar.gz -C ~/app //解壓
//設置JVM環境變量
hadoop@ubuntu:~$:echo 'export JAVA_HOME=/home/hadoop/app/java' >> ~/.bashrc
hadoop@ubuntu:~$:echo 'PATH=${JAVA_HOME}/bin:$PATH' >> ~/.bashrc
hadoop@ubuntu:~$:source .bashrc //刷新
3 Zookeeper集羣節點配置
1) 解壓安裝包
hadoop@ubuntu:~$ tar -zxvf zookeeper-3.4.5-cdh5.9.3.tar.gz -C ~/app/
hadoop@ubuntu:~/app$ mv zookeeper-3.4.5-cdh5.9.3/ zookeeper
2) 配置環境變量
hadoop@ubuntu:~$ vim ~/.bashrc
在末尾新增以下配置:
export ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
PATH=${ZOOKEEPER_HOME}/bin:$PATH
3) 修改配置文件
hadoop@ubuntu:~$ mkdir -p /home/hadoop/app/tmp/zookeeper/data
hadoop@ubuntu:~$/home/hadoop/app/tmp/zookeeper/logs
hadoop@ubuntu:~/app/zookeeper/conf$ cp zoo_sample.cfg zoo.cfg
hadoop@ubuntu:~/app/zookeeper/conf$ vim zoo.cfg
#主節點和從節點間心跳時間 = tickTime * initLimit (ms)= 20000ms
#主節點和從節點間請求和相應最大時長 = tickTime * syncLimit(ms)= 10000ms
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/app/tmp/zookeeper/data
dataLogDir=/home/hadoop/app/tmp/zookeeper/logs
#服務端端口號
clientPort=2181
#server.機器序號=機器ip:從節點與主節點通信端口號: 主節點與從節點通信端口號:
server.1=192.168.0.131:2888:3888
server.2=192.168.0.132:2888:3888
server.3=192.168.0.133:2888:3888
4)創建myid文件
hadoop@ubuntu:~$echo 1 > /home/hadoop/app/tmp/zookeeper/data/myid
備註:1),2)3)步每臺機器都一致,其中4)的數字是機器序號,是唯一的,第2臺設備爲2,第三臺設備爲3,即不同虛擬機機器序號不同!
5)啓動zookeeper
hadoop@ubuntu:~/app/zookeeper$ bin/zkServer.sh start
4 檢查Zookeeper是否啓動成功
1)查看zookeeper的進程
hadoop@ubuntu:~/app/zookeeper$ jps
2)再查看zk狀態,如果都ok說明集羣搭建成功!
hadoop@ubuntu:~/app/zookeeper$ ./bin/zkServer.sh status
5 zookeeper客戶端腳本常見命令
使用zookeeper自帶客戶端連接zk服務端
hadoop@ubuntu:~/app/zookeeper$ ./bin/zkCli.sh -server 192.168.0.131:2181
1) 創建節點
2) 讀取節點
3) 修改節點
4) 刪除節點
備註:默認創建的是永久節點,在集羣中使用任意一個客戶端對其中一個服務端操作後會同步到所有服務端。
6 參考文獻
1)《從Paxos到Zookeeper:分佈式一致性原理與實踐》
2) zookeeper官方文檔http://zookeeper.apache.org/