Zookeeper安裝

xuexiaogang發表於2015-08-10

Zookeeper的安裝版本

Zookeeper的安裝包獲取:


zookeeper-3.4.6.tar.gz

 

JDK包的獲取:

jdk-7u65-linux-x64.tar.gz 

 

4JDK的安裝

注:以下操作以root使用者身份執行

解除安裝自帶JDK

先檢視 rpm -qa | grep java

比如顯示如下資訊:

java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

解除安裝:

rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

 

安裝SunJDK

mkdir -p /usr/java

cd /usr/local/src

tar xzvf jdk-7u65-linux-x64.tar.gz -C /usr/java/

然後在/etc/profile設定環境變數:

JAVA_HOME=/usr/java/jdk1.7.0_65

JRE_HOME=/usr/java/jdk1.7.0_65/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

儲存退出並執行source /etc/profile

然後執行:

java -version 確認版本是否正確

 

5Zookeeper的安裝與配置

5.1、解壓

cd /usr/local/src

tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local/

5.2、修改變數

vi /etc/profile

export ZOOKEEPER_HOME=/usr/local/zookeeper-3.4.6

export PATH=$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf:$PATH

source /etc/profile

5.3、新建zk的資料和日誌目錄

mkdir -p /data/zookeeper/data

mkdir -p /data/zookeeper/log

chmod -R 777 /data/zookeeper/data

chmod -R 777 /data/zookeeper/log

5.4、新建zoo.cfg並修改

cd /usr/local/zookeeper-3.4.6/conf

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

配置檔案如下(紅色部分為我們要修改的地方,IP請按照實際情況):

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=5

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=2

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/data/zookeeper/data

dataLogDir=/data/zookeeper/log

server.1=phzcumemcached001.phzc.com:3888

server.2= phzcumemcached002.phzc.com:2888:3888

server.3= phzcumemcached003.phzc.com:2888:3888

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

maxClientCnxns=0

clientPortAddress=10.10.140.5

#

# Be sure to read the maintenance section of the

# administrator guide before turning on autopurge.

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

 

 

5.5、配置檔案引數的說明

引數說明:

  • tickTime:心跳時間,毫秒為單位。

  • initLimit:這個配置項是用來配置 Zookeeper 接受客戶端(這裡所說的客戶端不是使用者連線 Zookeeper伺服器的客戶端,而是 Zookeeper 伺服器叢集中連線到Leader  Follower 伺服器)初始化連線時最長能忍受多少個心跳時間間隔數。當已經超過 10 個心跳的時間(也就是 tickTime)長度後 Zookeeper 伺服器還沒有收到客戶端的返回資訊,那麼表明這個客戶端連線失敗。總的時間長度就是 10*2000=20 秒。

  • syncLimit:這個配置項標識 Leader  Follower 之間傳送訊息,請求和應答時間長度,最長不能超過多少個 tickTime 的時間長度,總的時間長度就是 5*2000=10秒。

  • dataDir:儲存記憶體中資料庫快照的位置。

  • clientPort:監聽客戶端連線的埠

  • server.A=BCD:其中 A 是一個數字,表示這個是第幾號伺服器;是這個伺服器的 ip 地址;表示的是這個伺服器與叢集中的 Leader 伺服器交換資訊的埠;表示的是萬一叢集中的 Leader 伺服器掛了,需要一個埠來重新進行選舉,選出一個新的 Leader,而這個埠就是用來執行選舉時伺服器相互通訊的埠。如果是偽叢集的配置方式,由於 B 都是一樣,所以不同的 Zookeeper 例項通訊埠號不能一樣,所以要給它們分配不同的埠號。

  • dataLogDir:用於單獨設定transaction log的目錄,transaction log分離可以避免和普通log還有快照的競爭

5.6、建立myid檔案

在我們配置的dataDir指定的目錄下面,建立一個myid檔案,裡面內容為一個數字,用來標識當前主機,conf/zoo.cfg檔案中配置的server.XX為什麼數字,則myid檔案中就輸入這個數字:

echo "1" > /data/zookeeper/data/myid

echo "2" > /data/zookeeper/data/myid

echo "3" > /data/zookeeper/data/myid

5.7、啟動和停止Zookeeper

zkServer.sh start  zkServer.sh stop

5.8、檢查Zookeeper啟動狀況

netstat -nap | grep 2181看是否存在,並被一個java程式佔據

zkServer.sh status 看是否有leaderfollower的資訊

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-1766821/,如需轉載,請註明出處,否則將追究法律責任。

相關文章