Centos7安裝Zookeeper3.5.7集群

1.集群規(guī)劃

在hadoop101、hadoop102和hadoop103三個(gè)節(jié)點(diǎn)上部署Zookeeper。

服務(wù)器 hadoop101 服務(wù)器 hadoop102 服務(wù)器 hadoop103
Zookeeper Zookeeper Zookeeper Zookeeper

2.解壓安裝

將 Zookeeper 安裝包上傳到服務(wù)器的 /opt/software 目錄下
解壓Zookeeper安裝包到/opt/module/目錄下

[yobhel@hadoop101 software]$ tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

切換到 /opt/module 目錄,將 apache-zookeeper-3.5.7-bin目錄名稱修改為zookeeper-3.5.7

[yobhel@hadoop101 module]$ mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7

同步/opt/module/zookeeper-3.5.7目錄內(nèi)容到hadoop102、hadoop103

[yobhel@hadoop101 module]$ xsync zookeeper-3.5.7/

3.配置服務(wù)器編號(hào)

a. 在/opt/module/zookeeper-3.5.7/這個(gè)目錄下創(chuàng)建zkData

[yobhel@hadoop101 zookeeper-3.5.7]$ mkdir zkData

b.在/opt/module/zookeeper-3.5.7/zkData目錄下創(chuàng)建一個(gè)myid的文件

[yobhel@hadoop101 zkData]$ vim myid

添加myid文件,注意一定要在linux里面創(chuàng)建,在notepad++里面很可能亂碼
在文件中添加與server對(duì)應(yīng)的編號(hào):

1

c.拷貝配置好的zookeeper到其他機(jī)器上

[yobhel@hadoop101 zkData]$ xsync ../zkData

并分別在hadoop102、hadoop103上修改myid文件中內(nèi)容為2、3

4.配置zoo.cfg文件

(1)拷貝 /opt/module/zookeeper-3.5.7/conf 這個(gè)目錄下的 zoo_sample.cfg 為 zoo.cfg

[yobhel@hadoop101 conf]$ cp zoo_sample.cfg zoo.cfg

(2)打開zoo.cfg文件

[yobhel@hadoop101 conf]$ vim zoo.cfg

修改數(shù)據(jù)存儲(chǔ)路徑配置

dataDir=/opt/module/zookeeper-3.5.7/zkData

增加如下配置

#######################cluster##########################
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888

(3)同步zoo.cfg配置文件

[yobhel@hadoop101 conf]$ xsync zoo.cfg

(4)配置參數(shù)解讀

server.A=B:C:D。
  • A是一個(gè)數(shù)字,表示這個(gè)是第幾號(hào)服務(wù)器;
    集群模式下配置一個(gè)文件myid,這個(gè)文件在dataDir目錄下,這個(gè)文件里面有一個(gè)數(shù)據(jù)就是A的值,Zookeeper啟動(dòng)時(shí)讀取此文件,拿到里面的數(shù)據(jù)與zoo.cfg里面的配置信息比較從而判斷到底是哪個(gè)server。
  • B是這個(gè)服務(wù)器的地址;
  • C是這個(gè)服務(wù)器Follower與集群中的Leader服務(wù)器交換信息的端口;
  • D是萬(wàn)一集群中的Leader服務(wù)器掛了,需要一個(gè)端口來(lái)重新進(jìn)行選舉,選出一個(gè)新的Leader,而這個(gè)端口就是用來(lái)執(zhí)行選舉時(shí)服務(wù)器相互通信的端口。

5.集群操作

(1)分別啟動(dòng)Zookeeper

[atguigu@hadoop101 zookeeper-3.5.7]$ bin/zkServer.sh start
[atguigu@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh start
[atguigu@hadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start

(2)查看狀態(tài)

[atguigu@hadoop101 zookeeper-3.5.7]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: follower
[atguigu@hadoop102 zookeeper-3.5.7]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: leader
[atguigu@hadoop103 zookeeper-3.4.5]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Mode: follower

6.客戶端命令行操作

命令基本語(yǔ)法 功能描述
help 顯示所有操作命令
ls path 使用 ls 命令來(lái)查看當(dāng)前 znode 的子節(jié)點(diǎn)
-w 監(jiān)聽子節(jié)點(diǎn)變化
-s 附加次級(jí)信息
create 普通創(chuàng)建
-s 含有序列
-e 臨時(shí)(重啟或者超時(shí)消失)
get path 獲得節(jié)點(diǎn)的值
-w 監(jiān)聽節(jié)點(diǎn)內(nèi)容變化
-s 附加次級(jí)信息
set 設(shè)置節(jié)點(diǎn)的具體值
stat 查看節(jié)點(diǎn)狀態(tài)
delete 刪除節(jié)點(diǎn)
deleteall 遞歸刪除節(jié)點(diǎn)

啟動(dòng)客戶端

[yobhel@hadoop102 zookeeper-3.5.7]$ bin/zkCli.sh

7.ZK集群?jiǎn)?dòng)停止腳本

1)在hadoop101的/home/yobhel/bin目錄下創(chuàng)建腳本

[yobhel@hadoop101 bin]$ vim zk.sh

在腳本中編寫如下內(nèi)容

#!/bin/bash

case $1 in
"start"){
    for i in hadoop101 hadoop102 hadoop103
    do
        echo ---------- zookeeper $i 啟動(dòng) ------------
        ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
    done
};;
"stop"){
    for i in hadoop101 hadoop102 hadoop103
    do
        echo ---------- zookeeper $i 停止 ------------    
        ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
    done
};;
"status"){
    for i in hadoop101 hadoop102 hadoop103
    do
        echo ---------- zookeeper $i 狀態(tài) ------------    
        ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
    done
};;
esac

2)增加腳本執(zhí)行權(quán)限

[yobhel@hadoop101 bin]$ chmod +x zk.sh

3)Zookeeper集群?jiǎn)?dòng)腳本

[yobhel@hadoop101 module]$ zk.sh start

4)Zookeeper集群停止腳本

[yobhel@hadoop101 module]$ zk.sh stop
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容