zookeeper分佈式安裝部署

在master、slave1、slave2三個節點上部署zookeeper
zookeeper:zookeeper-3.4.9

一、配置其中一個節點

1.解壓安裝
將zookeeper-3.4.9的壓縮包解壓在/home/hadoop/hadoop_home/下(個人習慣,路徑自定義)

tar -zxvf zookeeper-3.4.9.tar.gz -C /home/hadoop/hadoop_home/

2.複製/home/hadoop/hadoop_home/zookeeper-3.4.9/conf目錄下的zoo_sample.cfg,改名爲zoo.cfg (個人習慣,防止配置的時候把文件玩壞)

cp zoo_sample.cfg zoo.cfg

3.在/home/hadoop/hadoop_home/zookeeper-3.4.9/目錄下創建文件夾zkData
mkdir -p zkData
4.配置zoo.cfg文件
修改dataDir
在這裏插入圖片描述

dataDir=/home/hadoop/hadoop_home/zookeeper-3.4.9/zkData

在文件中添加以下信息:
在這裏插入圖片描述

server.1=slave1:2888:3888
server.2=slave2:2888:3888
server.3=master:2888:3888

注:
zkData文件夾是用來存放快照數據的

server.1=slave1:2888:3888
server.a=b:c:d
a表示服務器的編號,可以是12345任意數
b是服務器a的ip(我用的是主機名)
c是a服務器與集羣中的leader服務器交換信息的端口
d是備用端口,萬一leader服務器掛了,需要一個端口來重新進行選舉,選出一個新的leader,而這個端口就是用來執行選舉時服務器相互通信的端口

5.在zkData目錄下創建myid文件,並在myid文件中加入當前主機對應的服務器編號

vim myid

比如我當前正在配置的主機是master,是server.3,那麼服務器編號就是3

二、配置其他節點

1.將配置好的zookeeper發送到其他節點上

scp -r zookeeper-3.4.9/ hadoop@slave1:/home/hadoop/hadoop_home

2.將其他節點上的myid文件中的服務器編號修改爲其所對應的服務器的編號,如slave1節點是1號服務器,那麼myid中的編號應該爲1

三、對zookeeper的基本操作

1.啓動zookeeper
在/home/hadoop/hadoop_home/zookeeper-3.4.9/bin/目錄下運行

hadoop@slave1:~/hadoop_home/zookeeper-3.4.9/bin$ ls
README.txt  zkCleanup.sh  zkCli.cmd  zkCli.sh  zkEnv.cmd  zkEnv.sh  zkServer.cmd  zkServer.sh  zookeeper.out
hadoop@slave1:~/hadoop_home/zookeeper-3.4.9/bin$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/hadoop/hadoop_home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

在這裏插入圖片描述
2.查看狀態

hadoop@slave1:~/hadoop_home/zookeeper-3.4.9/bin$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/hadoop/hadoop_home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower
hadoop@slave1:~/hadoop_home/zookeeper-3.4.9/bin$ 

在這裏插入圖片描述
3.停止zookeeper

hadoop@slave1:~/hadoop_home/zookeeper-3.4.9/bin$ ./zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /home/hadoop/hadoop_home/zookeeper-3.4.9/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
hadoop@slave1:~/hadoop_home/zookeeper-3.4.9/bin$ 

在這裏插入圖片描述

四、注意!

啓動zookeeper時可能會出現這樣的一個錯誤:

bin/zkServer.sh: 81: /opt/zookeeper-3.4.9/bin/zkEnv.sh: Syntax error: "(" unexpected (expecting "fi")

原因是腳本里面用到的shell版本與系統當前使用的shell版本不兼容,導致異常。
查看當前ubuntu系統的shell,默認是使用dash,但是腳本里面是使用的bash,問題就在這裏了。
解決辦法:
root用戶修改當前系統的shell版本:把dash改成bash

 root@master:~# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Feb 13 14:56 /bin/sh -> dash
root@master:~# ln -sf bash /bin/sh
root@master:~# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 12 21:53 /bin/sh -> bash
root@master:~# 

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章