zookeeper 集群安裝和配置
一、單機模式
1、解壓安裝
mv zookeeper-3.4.6.tar.gz /wls/ && tar zxvf zookeeper-3.4.6.tar.gz
cd /wls/zookeeper-3.4.6/conf && mv zoo_sample.cfg zoo.cfg
2、單機啟動
cd /wls/zookeeper-3.4.6/bin/ && zkServer.sh start
3、登陸zk
cd /wls/zookeeper-3.4.6/bin/ && ./zkCli.sh
二、集群模式
1、修改配置文件
cd /wls/zookeeper-3.4.6/conf && mv zoo.cfg z1.cfg
修改節點1 z1 配置文件
initLimit=10
syncLimit=5
clientPort=2187
tickTime=20000
maxClientCnxns=2000
minSessionTimeout=50000
maxSessionTimeout=90000
autopurge.purgeInterval=24
autopurge.snapRetainCount=5
dataDir=/wls/zookeeper-3.4.6/servers/z1/data
zoologdir=/wls/zookeeper-3.4.6/servers/z1/log
dataLogDir=/wls/zookeeper-3.4.6/servers/z1/datalog
server.1=30.4.92.49:8887:9887
server.2=30.4.92.49:8888:9888
server.3=30.4.92.49:8889:9889
修改節點2 z2 配置文件
initLimit=10
syncLimit=5
clientPort=2188
tickTime=20000
maxClientCnxns=2000
minSessionTimeout=50000
maxSessionTimeout=90000
autopurge.purgeInterval=24
autopurge.snapRetainCount=5
dataDir=/wls/zookeeper-3.4.6/servers/z2/data
zoologdir=/wls/zookeeper-3.4.6/servers/z2/log
dataLogDir=/wls/zookeeper-3.4.6/servers/z2/datalog
server.1=30.4.92.49:8887:9887
server.2=30.4.92.49:8888:9888
server.3=30.4.92.49:8889:9889
修改節點3 z3 配置文件
initLimit=10
syncLimit=5
clientPort=2189
tickTime=20000
maxClientCnxns=2000
minSessionTimeout=50000
maxSessionTimeout=90000
autopurge.purgeInterval=24
autopurge.snapRetainCount=5
dataDir=/wls/zookeeper-3.4.6/servers/z3/data
zoologdir=/wls/zookeeper-3.4.6/servers/z3/log
dataLogDir=/wls/zookeeper-3.4.6/servers/z3/datalog
server.1=30.4.92.49:8887:9887
server.2=30.4.92.49:8888:9888
server.3=30.4.92.49:8889:9889
2、修改日誌路徑
調整之後日誌路徑為 Dzookeeper.log.dir=/wls/zookeeper-3.4.6/servers/z1/log
vim /wls/zookeeper-3.4.6/bin/zkServer.sh ,ZOO_DATADIR後面新增一行ZOO_LOG_DIR
if [ -z "$ZOOPIDFILE" ]; then
ZOO_DATADIR="$(grep "^[[:space:]]*dataDir" "$ZOOCFG" | sed -e ‘s/.*=//‘)"
ZOO_LOG_DIR="$(grep "^[[:space:]]*zoologdir" "$ZOOCFG" | sed -e ‘s/.*=//‘)"
修改/wls/zookeeper-3.4.6/bin/zkEvn.sh文件,這樣zookeeper.log文件就會獨立,而不是和zookeeper.out一起
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,CONSOLE"
fi
改成
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi
3、創建數據和日誌目錄
z1節點
mkdir -p /wls/zookeeper-3.4.6/servers/z1/data
mkdir -p /wls/zookeeper-3.4.6/servers/z1/log
mkdir -p /wls/zookeeper-3.4.6/servers/z1/datalog
echo 1 > /wls/zookeeper-3.4.6/servers/z1/data/myid
z2節點
mkdir -p /wls/zookeeper-3.4.6/servers/z2/data
mkdir -p /wls/zookeeper-3.4.6/servers/z2/log
mkdir -p /wls/zookeeper-3.4.6/servers/z2/datalog
echo 2 > /wls/zookeeper-3.4.6/servers/z2/data/myid
z3節點
mkdir -p /wls/zookeeper-3.4.6/servers/z3/data
mkdir -p /wls/zookeeper-3.4.6/servers/z3/log
mkdir -p /wls/zookeeper-3.4.6/servers/z3/datalog
echo 3 > /wls/zookeeper-3.4.6/servers/z3/data/myid
4、修改jvm 參數
在zkServer.sh文件的49行處加入 JVMPARAM="-Xms1G -Xmx1G"
在zkServer.sh文件的112行修改 -cp "$CLASSPATH" $JVMFLAGS $JVMPARAM $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
5、修改jmxremote參數
在zkServer.sh文件 修改 ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY org.apache.zookeeper.server.quorum.QuorumPeerMain" 為
ZOOMAIN=" -Dcom.sun.management.jmxremote.ssl=false org.apache.zookeeper.server.quorum.QuorumPeerMain"
6、修改最大數據量,zookeeper默認對每個結點的最大數據量有一個上限是1M,如果你要設置的配置數據大於這個上限將無法寫法,增加-Djute.maxbuffer=10240000參數
在zkEnv.sh文件最後添加一行 -Djute.maxbuffer=10240000
7、啟動服務
/wls/zookeeper-3.4.6/bin/zkServer.sh start ../conf/z1.cfg
/wls/zookeeper-3.4.6/bin/zkServer.sh start ../conf/z2.cfg
/wls/zookeeper-3.4.6/bin/zkServer.sh start ../conf/z3.cfg
8、查看狀態
/wls/zookeeper-3.4.6/bin/zkServer.sh status ../conf/z1.cfg
9、關閉服務
/wls/zookeeper-3.4.6/bin/zkServer.sh stop ../conf/z1.cfg
/wls/zookeeper-3.4.6/bin/zkServer.sh stop ../conf/z2.cfg
/wls/zookeeper-3.4.6/bin/zkServer.sh stop ../conf/z3.cfg
zookeeper 集群安裝和配置