天天看點

在Linux下叢集化部署zookeeper(3.7.0版本)Linux下zookeeper叢集化安裝

Linux下zookeeper叢集化安裝

文章目錄

  • Linux下zookeeper叢集化安裝
    • 安裝前提
      • 檢查伺服器
      • 建立ZK使用者
      • 建立對應的目錄
      • 上傳安裝包,确認權限
    • 安裝配置
      • 安裝jdk
      • 安裝ZK
      • 環境配置
      • ZK配置
    • 啟動
    • 啟動步驟
      • 啟動後檢查

安裝前提

檢查伺服器

  1. 機器域名要可以正常使用(非必要)
  2. 機器清單/etc/hosts檔案要完整(生産規範)
  3. 空閑端口(滿足安裝zookeeper前不被其他程序占用,必要):
    1. 2181 :對cline端提供服務
    2. 2888 :選舉leader使用、
    3. 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配置

  1. 新增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
           
  1. 新增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;
           
  1. 使用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

繼續閱讀