zookeeper安裝

jopen 8年前發布 | 10K 次閱讀 分布式/云計算/大數據

用戶為hadoop,安裝目錄為/opt/app下面

上傳安裝文件到/opt下面

root用戶解壓
[root@master opt]$ tar -zxvf zookeeper-3.4.7.tar.gz -C /opt/app/

修改用戶及屬組

[root@master opt]# chown -R hadoop:hadoop zookeeper-3.4.7

創建數據文件夾并修改屬組(并在slave01和slave02上同樣創建)

mkdir /home/hadoop/app/zookeeper-3.4.7/tmp

chown -R hadoop:hadoop /home/hadoop/app/zookeeper-3.4.7/tmp



切換用戶并修改文件zoo.cfg

su – hadoop

mv zoo_sample.cfg  zoo.cfg

#修改數據文件夾自定

dataDir=/home/hadoop/app/zookeeper-3.4.7/tmp 

#添加服務器

server.1=master:2888:3888 

server.2=slave01:2889:3889

server.3=slave02:2890:3890


最后幾行唯一需要注意的地方就是 server.X 這個數字就是對應 data/myid中的數字。你在3個server的myid文件中分別寫入了1,2,3,那么每個server中的zoo.cfg都配server.1,server.2,server.3就OK了。因為在同一臺機器上,后面連著的2個端口3個server都不要一樣,否則端口沖突,其中第一個端口用來集群成員的信息交換,第二個端口是在leader掛掉時專門用來進行選舉leader所用。



// server.X=A:B:C

其中X是一個數字,表示這是第幾號server.

A是該server所在的IP地址.

B配置該server和集群中的leader交換消息所使用的端口.

C配置選舉leader時所使用的端口

進入數據文件夾創建myid為1

cd  /home/hadoop/app/zookeeper-3.4.7/tmp/

echo 1 > /home/hadoop/app/zookeeper-3.4.7/tmp/myid    (對應上面的X 1:1號server)




將配置到的zookeeper拷貝到其他電腦(slave01,slave02)上

 scp -r zookeeper-3.4.7 hadoop@slave01:/opt/app  (-r表示遞歸)

scp -r zookeeper-3.4.7 hadoop@slave02:/opt/app


修改屬組
[root@master opt]# chown -R hadoop:hadoop zookeeper-3.4.7


注意:修改slave01、slave02對應/home/hadoop/app/zookeeper-3.4.7/tmp/myid內容

slave01:

echo 2 > /home/hadoop/app/zookeeper-3.4.7/tmp/myid 


slave02:

echo 3 > /home/hadoop/app/zookeeper-3.4.7/tmp/myid 


配置環境變量

sudo vi /etc/profile

export ZOOKEEPER_HOME=/opt/app/zookeeper-3.4.7

export PATH=$PATH:$ZOOKEEPER_HOME/bin

(同樣在master、slave02節點上也進行同樣的操作)



啟動,在三臺機器上執行

bin/zkServer.sh start     bin/zkServer.sh stop(關閉)

判斷是否啟動成功

Jps



或者查看進程-#有信息則啟動成功

ps -aux | grep 'zookeeper' 



最好查看日志 #查看是否報錯

tail -f -n 500 zookeeper.out


查看zookeeper角色

在master節點上:

zkServer.sh status


在slave01節點上:



在slave02節點上:



Leader角色至始至終只有一個,通過選舉算法產生。節點中只要有一個leader死掉,馬上就會通過選舉算法產生一個新的leader.

進入zookeeper-3.4.7/bin 目錄中,./zkServer.sh start啟動一個server,這時會報大量錯誤?其實沒什么關系,因為現在集群只起了1臺server,zookeeper服務器端起來會根據zoo.cfg的服務器列表發起選舉leader的請求,因為連不上其他機器而報錯,那么當我們起第二個zookeeper實例后,leader將會被選出,從而一致性服務開始可以使用,這是因為3臺機器只要有2臺可用就可以選出leader并且對外提供服務(2n+1臺機器,可以容n臺機器掛掉)。

來自: http://my.oschina.net/u/189445/blog/597982

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!