CentOS7單機安裝Zookeeper偽叢集
操作環境
CentOS:CentOS-7-x86_64-DVD-1503-01
ZooKeeper:zookeeper-3.4.13.tar.gz
安裝wget命令
-
yum -y install wget
安裝Java
-
檢視當前系統是否有Java
-
java -version
-
檢視yum庫中都有哪些jdk版本
yum search java|grep jdk
-
安裝Java1.8(期間會有兩次詢問,均輸入y即可)
yum install java-1.8.0-openjdk
-
檢視Java版本,驗證是否安裝成功
-
java -version
單機安裝Zookeeper偽叢集
-
建立安裝路徑:
mkdir -p /usr/local/dev/zookeeper
-
下載Zookeeper:
wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz
-
下載完成後進行解壓:
tar zxvf zookeeper-3.4.13.tar.gz
-
將解壓後的Zookeeper檔案重新命名並複製,共三份:
mv zookeeper-3.4.13 zookeeper-3.4.13_1 cp -a zookeeper-3.4.13_1 zookeeper-3.4.13_2
-
分別進行三個zookeeper資料夾下的conf目錄下,建立zoo.cfg檔案:
cp zoo_sample.cfg zoo.cfg
-
修改這三個zoo.cfg的內容,並建立/var/lib/zookeeper_1、/var/lib/zookeeper_2、/var/lib/zookeeper_3目錄:
-
下面說明一下需要注意的幾點:
-
dataDir屬性配置的目錄是指例項資料的存放路徑,不同的例項需進行區分。
-
clientPort是指客戶端連線本例項的埠號,不同的例項也要區分。比如,可以分別指定為:2181、2182、2183。
-
server.{X}這個X可以取數字,用來標識叢集中唯一的一個例項。配置了多少個server.{X}就表示叢集中有多少個例項。後面值的格式為:
{host}:{port1}:{port2}
其中:
-
{host}為例項所在的主機IP,這裡由於都在一臺機器上,所以都指定為本機地址;
-
{port1}是叢集中例項之間用於資料通訊的埠;
-
{port2}是叢集中例項進行leader選舉時使用的通訊埠(注:對於同一例項{port1}和{port2}是不可相同的。對於同一臺機器部署多個例項的情況,不同例項的同一種埠也是需要區分的)。
-
-
-
配置myId檔案
前面提到的server.{X}配置項中的{X}就是一個例項的myid,它需要被寫在對應例項的{dataDir}/myid檔案中。
下面需要在每一個例項指定的{dateDir}目錄下建立一個名為myid的檔案,檔案的內容就是一個數字,對應server.{X}中的X。
比如,這裡是這樣配置的: 在/var/lib/zookeeper_1/myid檔案中寫入1; 在/var/lib/zookeeper_2/myid檔案中寫入2; 在/var/lib/zookeeper_3/myid檔案中寫入3。
-
建立啟動和停止指令碼
對於多個例項,分別啟動和停止比較麻煩,可以寫一個指令碼來自動完成這個工作。 start-zk-servers.sh的內容
echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_1/bin/zkServer.sh start` echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_2/bin/zkServer.sh start` echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_3/bin/zkServer.sh start`
stop-zk-servers.sh的內容:
echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_1/bin/zkServer.sh stop` echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_2/bin/zkServer.sh stop` echo `/usr/local/dev/zookeeper/zookeeper-3.4.13_3/bin/zkServer.sh stop`
指令碼建立後需要對指令碼進行授權,預設授權最大許可權:
chmod 777 ./start-zk-servers.sh chmod 777 ./stop-zk-servers.sh
10.現在可以啟動zookeeper了