Linux下zookeeper叢集化安裝
文章目錄
- Linux下zookeeper叢集化安裝
-
- 安裝前提
-
- 檢查伺服器
- 建立ZK使用者
- 建立對應的目錄
- 上傳安裝包,确認權限
- 安裝配置
-
- 安裝jdk
- 安裝ZK
- 環境配置
- ZK配置
- 啟動
- 啟動步驟
-
- 啟動後檢查
安裝前提
檢查伺服器
- 機器域名要可以正常使用(非必要)
- 機器清單/etc/hosts檔案要完整(生産規範)
- 空閑端口(滿足安裝zookeeper前不被其他程序占用,必要):
- 2181 :對cline端提供服務
- 2888 :選舉leader使用、
- 3888 :叢集内機器通訊使用(Leader監聽此端口)
建立ZK使用者
groupadd zookeeper && useradd -g zookeeper zookeeper
建立對應的目錄
# root登入
#軟體存放目錄
mkdir -p /opt/zookeeper
mkdir -p /opt/zookeeper/software
#日志與資料目錄
mkdir -p /opt/zookeeper/logs
mkdir -p /opt/zookeeper/zkdata
#軟連接配接目錄
mkdir -p /home/zookeeper/software
上傳安裝包,确認權限
将jdk,zk的安裝檔案
jdk1.8.0_131.tgz
和
apache-zookeeper-3.7.0-bin.tar.gz
分發到三台機器上(192.168.1.1,192.168.1.2,192.168.1.3),對應的目錄
/opt/zookeeper/software
上。
scp apache-zookeeper-3.7.0-bin.tar.gz [email protected]:/opt/zookeeper/software/apache-zookeeper-3.7.0-bin.tar.gz
scp apache-zookeeper-3.7.0-bin.tar.gz [email protected]:/opt/zookeeper/software/apache-zookeeper-3.7.0-bin.tar.gz
scp apache-zookeeper-3.7.0-bin.tar.gz [email protected]:/opt/zookeeper/software/apache-zookeeper-3.7.0-bin.tar.gz
scp jdk1.8.0_131.tgz [email protected]:/opt/zookeeper/software/jdk1.8.0_131.tgz
scp jdk1.8.0_131.tgz [email protected]:/opt/zookeeper/software/jdk1.8.0_131.tgz
scp jdk1.8.0_131.tgz [email protected]:/opt/zookeeper/software/jdk1.8.0_131.tgz
###修改權限目錄權限
chown -R zookeeper:zookeeper /opt/zookeeper
安裝配置
# 切換使用者後進行
su - zookeeper
安裝jdk
tar -zxf /opt/zookeeper/software/jdk1.8.0_131.tgz -C /opt/zookeeper/software/
ln -nsf /opt/zookeeper/software/jdk1.8.0_131 /home/zookeeper/software/java
安裝ZK
tar -zxf /opt/zookeeper/software/apache-zookeeper-3.7.0-bin.tar.gz -C /opt/zookeeper/software/
ln -nsf /opt/zookeeper/software/apache-zookeeper-3.7.0-bin /home/zookeeper/software/zookeeper
環境配置
vim ~/.bashrc
# 追加以下内容
export userEnv=/opt/zookeeper/software
export JAVA_HOME=$userEnv/java
export ZOOKEEPER_HOME=$userEnv/zookeeper
export PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/tools:$PATH
ZK配置
- 新增zoo.cfg
vim ~/software/zookeeper/conf/zoo.cfg
# 追加以下内容
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/zkdata/
dataLogDir=/home/zookeeper/logs/
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=1
zookeeper.leaderServes=no
server.1=192.168.1.2:2888:3888
server.2=192.168.1.3:2888:3888
server.3=192.168.1.1:2888:3888
- 新增myid,在三台機器上各自添加myid檔案(值為在
對應的zoo.cfg
),檔案路徑采用ServerID
中zoo.cfg
配置項中的位址。dataDir
# 192.168.1.2上執行
touch -p /home/zookeeper/zkdata/myid;echo 1 >> /home/zookeeper/zkdata/myid;
# 192.168.1.3上執行
touch -p /home/zookeeper/zkdata/myid;echo 2 >> /home/zookeeper/zkdata/myid;
# 192.168.1.1上執行
touch -p /home/zookeeper/zkdata/myid;echo 3 >> /home/zookeeper/zkdata/myid;
- 使用ROLLINGFILE方式記錄ZK日志。在
下配置zookeeper/bin
檔案zkEnv.sh
f [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="/home/zookeeper/logs"
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
啟動
啟動步驟
cd /home/zookeeper/software/zookeeper;zkServer.sh start
啟動後檢查
cd /home/zookeeper/software/zookeeper;zkServer.sh status
[[email protected] bin]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
叢集内隻有一台為leader,其他均為follower