CentOS下部署zookeeper集羣

CentOS下部署zookeeper集羣

版本:zookeeper-3.4.13

1 環境準備

1.1 準備三臺機器

機器信息如下:

hostname ip 端口
master.hadoop.com 192.168.162.180 2181/2881/3881
slave1.hadoop.com 192.168.162.181 2181/2881/3881
slave2.hadoop.com 192.168.162.182 2181/2881/3881

按照上面信息分別修改hostname

vi /etc/hostname 

並修改hosts

vi /etc/hosts

內容如下:

192.168.162.180 master.hadoop.com
192.168.162.181 slave1.hadoop.com
192.168.162.182 slave2.hadoop.com

1.2 安裝JDK

1.2.1 官網下載jdk 1.8

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下載jdk-8u151-linux-x64.tar.gz並複製到 /usr/lib目錄下

1.2.2 解壓

tar -zxvf jdk-8u151-linux-x64.tar.gz

1.2.3 配置環境變量

vim /etc/profile

添加如下內容

#set java enviroenment
export JAVA_HOME=/usr/lib/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH

使環境變量生效

. /etc/profile

驗證jdk

[root@shirukai ~]# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

1.2.4 將jdk目錄發送到兩臺Agent主機

scp -r /usr/lib/java-1.8.0_151 [email protected]:/usr/lib/
scp -r /usr/lib/java-1.8.0_151 [email protected]:/usr/lib/

配置環境變量就不要統一發送了,每臺機子單獨配置,方法跟Service主機一樣。

1.3 關閉防火牆

1.3.1 停止防火牆

systemctl stop firewalld
systemctl status firewalld

1.3.2 禁用防火牆(系統啓動時不啓動防火牆)

systemctl disable firewalld
systemctl is-enabled firewalld

1.3.3 確保setlinux關閉

臨時關閉

setenforce 0

永久關閉

修改/etc/selinux/config文件中設置SELINUX=disabled ,然後重啓服務器

2 安裝zookeeper

2.1 下載zookeeper

下載地址:http://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

wget http://mirrors.shu.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

解壓zookeeper

tar -zxvf zookeeper-3.4.13.tar.gz

移動到/root/apps下重命名爲zookeeper

mv zookeeper-3.4.13 /root/apps/zookeeper

2.2 修改配置文件

以下操作只在master主機上進行,完成後將zookeeper目錄scp到其它兩臺機子

2.2.1 創建數據目錄和日誌目錄

進入zookeeper目錄

cd zookeeper

創建 data和logs目錄

mkdir data logs

2.2.2 修改配置

2.2.2.1 進入conf目錄
cd conf
2.2.2.2 將zoo_sample.cfg文件重命名爲zoo.cfg
mv zoo_sample.cfg zoo.cfg
2.2.2.3 修改zoo.cfg
vi zoo.cfg
2.2.2.4 修改內容如下:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/root/apps/zookeeper/data
dataLogDir=/root/apps/zookeeper/logs
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=master.hadoop.com:2881:3881
server.2=slave1.hadoop.com:2881:3881
server.3=slave2.hadoop.com:2881:3881
2.2.2.5 參數說明:

tickTime=2000

tickTime這個時間是作爲Zookeeper服務器之間或客戶端之間維持心跳的時間間隔,也就是每個tickTime時間就會發送一次心跳

initLimit=10

initLimit 這個配置項是用來皮質zookeeper接收客戶端(Leader 或Follwer)初始化連接時最長能忍受多少個心跳時間間隔數。當已經超過10個心跳時間長度後zookeeper服務器還沒有收到客戶端的返回信息,那麼表名這個客戶端連接失敗,總的時間長度就是10*2000=20秒

syncLimit=5

syncLimit這個配置項標識Leader與Follower之間發送消息,請求和應答時間長度,最長不能超過多少個tickTime的時間長度,總的時間長度就是5*2000=10秒

dataDir=/root/apps/zookeeper/data

dataDir顧名思義就是Zookeeper保存數據的目錄,默認情況下Zookeeper將寫數據的日誌文件也保存在這個目錄裏。

clientPort=2181

clientPort這個端口就是客戶端(應用程序)連接Zookeeper服務器的端口,Zookeeper會監聽這個端口接受客戶端的訪問請求。

server.A=B:C:D

A是一個數字,表示這個是第幾號服務器;

B是這個服務器的IP地址(或者是與IP地址做了映射的主機名);

C第一個端口用來集羣成員的信息交換,表示這個服務器與集羣中的Leader服務器交換信息的端口;

D是在leader掛掉時專門用來進行選舉leader所用的端口。

2.2.2.6 創建myid文件

在/root/apps/zookeeper/data目錄下創建一個myid文件

cd /root/apps/zookeeper/data
vi myid

內容爲1,其它兩臺分別爲2,3

2.3 主機分發

在master主機上將修改後的zookeeper文件夾分發到其它兩臺主機上

scp -r /root/apps/zookeeper/ slave1.hadoop.com:/root/apps/
scp -r /root/apps/zookeeper/ slave2.hadoop.com:/root/apps/

然後只需要修改/root/apps/zookeeper/data/myid文件,分別爲2 ,3即可

2.4 啓動zookeeper

分別在三臺主機上執行以下命令:

sh /root/apps/zookeeper/bin/zkService.sh start

查看狀態

sh /root/apps/zookeeper/bin/zkService.sh status

停止服務

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