ZooKeeper 就是動物園管理員的意思,它是用來管理 Hadoop(大象)、Hive(蜜蜂)、pig(小豬)的管理員,Apache Hbase、Apache Solr、Dubbo 都用到了 ZooKeeper,其實就是一個集群管理工具,是集群的入口。ZooKeeper 是一個分布式的、開源的程序協調服務,是 Hadoop 項目下的一個子項目。ZooKeeper 主要應用場景包括集群管理(主從管理、負載均衡、高可用的管理)、配置文件的集中管理、分布式鎖、注冊中心等。實際項目中,為了保證高可用,ZooKeeper 都是以分布式集群的方式進行安裝的,至少需要三個節點,下面具體來看下。
這里 Linux 選擇 CentOS 7.2。
# wget -P /usr/local http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz# cd /usr/local# tar -zxvf zookeeper-3.4.10.tar.gz# cd zookeeper-3.4.10# mkdir data# mkdir logs# vim /etc/rc.d/rc.local //配置開啟自啟動
追加如下配置即可:
export JAVA_HOME=/usr/java/jdk/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
我們在三臺不同的服務器上各部署一個 ZooKeeper 進程,以構成一個 ZooKeeper 集群。三個 ZooKeeper 進程均使用相同的 zoo.cfg 配置:
# cd /usr/local/zookeeper-3.4.10/conf# cp zoo_sample.cfg zoo.cfg //拷貝配置文件# vim zoo.cfg
修改配置如下:
# 配置存儲快照文件的目錄dataDir=/usr/local/zookeeper-3.4.10/datadataLogDir=/usr/local/zookeeper-3.4.10/logs# zk服務進程監聽的TCP端口clientPort=2181# 2888:ZooKeeper服務之間通信的端口,3888:ZooKeeper與其他應用程序通信的端口# server.1:表示這是第幾號服務器server.1=192.168.20.11:2888:3888server.2=192.168.20.12:2888:3888server.3=192.168.20.13:2888:3888
然后在三臺服務器 dataDir 目錄下,分別創建一個 myid 文件,其內容分別為1,2,3。然后分別在這三臺機器上啟動 ZooKeeper 進程,這樣我們便將 ZooKeeper 集群啟動了起來。如下:
# cd /usr/local/zookeeper-3.4.10/data# echo 1 >>myid //創建myid文件并寫入1# /usr/local/zookeeper-3.4.10/bin/zkServer.sh start //后臺啟動ZooKeeper
還有一些其他命令如下:
# /usr/local/zookeeper-3.4.10/bin/zkServer.sh stop //關閉ZooKeeper# /usr/local/zookeeper-3.4.10/bin/zkServer.sh status //查看服務狀態# /usr/local/zookeeper-3.4.10/bin/zkServer.sh start-foreground //前臺啟動
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答