今天北大青鳥長沙麓谷校區(qū)java學(xué)院小編為大家介紹“Java前沿技術(shù)——最詳細的Zookeeper集群部署流程”,想要學(xué)習(xí)Java前沿技術(shù)的小伙伴們,就跟隨小編的一起看看最詳細的Zookeeper集群部署流程吧。
ZooKeeper是一個開源的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實現(xiàn)。ZooKeeper為分布式應(yīng)用提供一致性服務(wù),提供的功能包括:分布式同步(Distributed Synchronization)、命名服務(wù)(Naming Service)、集群維護(Group Maintenance)、分布式鎖(Distributed Lock)等,簡化分布式應(yīng)用協(xié)調(diào)及其管理的難度,提供高性能的分布式服務(wù)。
ZooKeeper本身可以以單機模式安裝運行,不過它的長處在于通過分布式ZooKeeper集群(一個Leader,多個Follower),基于一定的策略來保證ZooKeeper集群的穩(wěn)定性和可用性,從而實現(xiàn)分布式應(yīng)用的可靠性。
1、服務(wù)器環(huán)境準備
我們這次環(huán)境搭建,將采用5臺主機來完成。其中兩臺主要用來做控制ZKFC(Zookeeper Failure Controller),另外三臺作為客戶端。
(1)關(guān)閉網(wǎng)絡(luò)防火墻
為了保證系統(tǒng)能夠正常運行,我們先關(guān)閉網(wǎng)絡(luò)防火墻,在CentOS7下這樣完成:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
(2)關(guān)閉SELinux
SELinux也需要關(guān)閉,臨時關(guān)閉采用這種:sudo setenforce 0
永久關(guān)閉這樣操作:vi /etc/Selinux/config
將 SELINUX=行,修改為 SELINUX=disabled
(3)設(shè)置主機名
在各臺電腦上,分別編輯/etc/hostname,按照上述表格的主機名進行設(shè)置。
sudo vi /etc/hostname
138.137.100主機:master
138.137.101主機:secondary
138.137.102主機:slave1
138.137.103主機:slave2
138.137.104主機:slave3
(4)設(shè)置主機名稱解析
再在各臺主機上,編輯/etc/hosts文件:sudo vi /etc/hosts
內(nèi)容是一樣的,均為:
192.168.137.100 master
192.168.137.101 secondary
192.168.137.102 slave1
192.168.137.103 slave2
192.168.137.104 slave3
(5)創(chuàng)建相應(yīng)的用戶
為了方便,以后有關(guān)Hadoop、Zookeeper、Hive、Hbase、Spark集群的安裝,我們都將采用以下設(shè)置的賬號和密碼來進行。
useradd -m hadoop -G hadoop -s /bin/bash
password hadoop
2、 安裝配置Zookeeper
Zookeeper的官方網(wǎng)站為: http://zookeeper.apache.org。
注意:以下操作,將全部使用hadoop用戶來完成。執(zhí)行以下指令切換到hadoop用戶:su - hadoop
(1) 設(shè)置工作目錄
執(zhí)行以下指令,創(chuàng)建Zookeeper的程序和數(shù)據(jù)存放目錄,并設(shè)置相應(yīng)的權(quán)限。
sudo mkdir -p /opt/zookeeper
sudo mkdir -p /home/hadoop/data/zookeeper/data
sudo mkdir -p /home/hadoop/data/zookeeper/logs
sudo chown -R hadoop:hadoop /opt/zookeeper
sudo chown -R hadoop:hadoop /home/hadoop/data/zookeeper
(2)下載
從國內(nèi)鏡像站點下載會快點:
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
(3)解壓
執(zhí)行以下指令解壓后,移動到剛才創(chuàng)建的工作目錄。
tar zxvf zookeeper-3.4.13.tar.gz
mv zookeeper-3.4.13/* /opt/zookeeper/
(5)配置Zookeeper
執(zhí)行以下指令編輯Zookeeper的配置文件:
cd /opt/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vi /opt/zookeeper/zoo.cfg
最后的內(nèi)容如下:
# 服務(wù)器之間或客戶端與服務(wù)器之間維持心跳的時間間隔
# tickTime以毫秒為單位。
tickTime=2000
# 集群中的follower服務(wù)器(F)與leader服務(wù)器(L)之間的初始連接心跳數(shù)
initLimit=10
# 集群中的follower服務(wù)器與leader服務(wù)器之間請求和應(yīng)答之間能容忍的最多心跳數(shù)
syncLimit=5
# 快照保存目錄
# 不要設(shè)置為/tmp,該目錄重新啟動后會被自動清除
dataDir=/home/hadoop/data/zookeeper/data
# 日志保存目錄
dataLogDir=/home/hadoop/data/zookeeper/logs
# 客戶端連接端口
clientPort=2181
# 客戶端最大連接數(shù)。
# 根據(jù)自己實際情況設(shè)置,默認為60個
# maxClientCnxns=60
# 三個接點配置,格式為:
# server.服務(wù)編號=服務(wù)地址、LF通信端口、選舉端口
server.1=salve1:2888:3888
server.2=slave2:2888:3888
server.3=slave3:2888:3888
將該文件分發(fā)到各個節(jié)點:
scp -R /opt/zookeeper/* secondary:/opt/zookeeper/
scp -R /opt/zookeeper/* slave1:/opt/zookeeper/
scp -R /opt/zookeeper/* slave2:/opt/zookeeper/
scp -R /opt/zookeeper/* slave2:/opt/zookeeper/
(5)寫入節(jié)點標(biāo)記
在三個slave節(jié)點上,分別在/home/hadoop/data/zookeeper/data/myid寫入節(jié)點標(biāo)記:
slave1:1
slave2:2
slave3:3
3、啟動Zookeeper
在slave1、slave2、slave3上,分別啟動zkServer。
zkServer.sh start
4、可用性測試
(1) 節(jié)點狀態(tài)查看
在slave1、slave2、slave3上,分別執(zhí)行以下指令看Zookeeper是否啟動成功。
zkServer.sh status
可以看到,3個節(jié)點,一個leader,其他的都是follower。
Zookeeper節(jié)點狀態(tài)
(2)客戶端連接測試
在客戶端電腦上,執(zhí)行以下指令測試連接:
# 連接服務(wù)器
[hadoop@master ~]$ zkCli.sh -server slave1:2181
# 查看目錄
[zk: slave1(CONNECTED) 0] ls /
以上就是北大青鳥長沙麓谷校區(qū)java學(xué)院小編介紹的“ Java前沿技術(shù)——最詳細的Zookeeper集群部署流程”的內(nèi)容,希望對大家有幫助,更多精彩內(nèi)容請關(guān)注北大青鳥長沙麓谷校區(qū)java學(xué)院官網(wǎng)。
相關(guān)免費視頻教程推薦
zookeeper集群部署免費視頻教程下載:
http://www.bjpowernode.com/xiazai/2398.html