在CentOS上搭建Zookeeper集群需要以下步驟:
sudo setenforce 0
。永久關閉:編輯 /etc/selinux/config
,將 SELINUXenforcing
改為 SELINUXdisabled
,然后重啟服務器。java -version
sudo yum install java-1.8.0-openjdk-devel.x86_64 -y
tar -zxvf zookeeper-x.x.x.tar.gz -C /usr/local/
/usr/local/
目錄下。配置環境變量:
/etc/profile
文件,追加以下內容:export JAVA_HOME=/usr/java/jdk1.8.0_111
export JRE_HOME=/usr/java/jdk1.8.0_111/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.9
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
配置Zookeeper:
cd /usr/local/zookeeper-3.4.9/conf
zoo_sample.cfg
文件并重命名為 zoo.cfg
:cp zoo_sample.cfg zoo.cfg
zoo.cfg
文件,設置以下參數:tickTime=2000
dataDir=/usr/local/zookeeper-3.4.9/data
clientPort=2181
initLimit=5
syncLimit=2
server.1 localhost:2888:3888
server.2 localhost:2889:3889
server.3 localhost:2890:3890
tickTime
:Zookeeper的基本時間單位(以毫秒為單位)。dataDir
:Zookeeper保存數據的目錄。clientPort
:客戶端連接Zookeeper服務的端口。initLimit
:初始化連接時最長能忍受的心跳時間間隔數。syncLimit
:Leader與Follower之間進行心跳檢測的最大延時時間。server.x
:每個服務器的ID,格式為 server.IP地址:端口:端口
。創建數據目錄:
sudo mkdir /usr/local/zookeeper-3.4.9/data
創建myid文件:
dataDir
目錄下創建一個名為 myid
的文件,內容為該服務器的唯一ID(例如,Master節點的ID為1,Slave節點的ID為2)。啟動Zookeeper服務:
./bin/zkServer.sh start
驗證啟動情況:
./bin/zkServer.sh status
sudo vi /etc/firewalld/rules.d/zookeeper.rules
port 2181 protocol tcp
allow in
sudo firewall-cmd --reload
sudo yum install zookeeper-client
zkCli
ls /