ZooKeeper搭建集群


ZooKeeper

ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等。(百度百科)

1、下載與解壓

下載:apache-zookeeper-3.5.5.tar.gz

解壓:tar -xzvf apache-zookeeper-3.5.5.tar.gz -C /usr/local/zookeeper

進入:cd /usr/local/zookeeper/apache-zookeeper-3.5.5/

目錄: 

命令:

 

 

2、啟動

2.1、單個節點啟動

 

2.1.1、配置

cat conf/zoo.cfg

dataDir=/var/zookeeper

clientPort=2181

2.1.2、啟動

bin/zkServer.sh start 

查看進程:

 

未發現服務成功啟動!查看日志如下:

cat logs/zookeeper-root-server-localhost.out

錯誤: 找不到或無法加載主類 org.apache.zookeeper.server.quorum.QuorumPeerMain

查看cat README.md文件:需要mvn打包源碼生成jar包,注意跳過測試類(太耗時!)

mvn clean install -DskipTests

再次啟動:

bin/zkServer.sh start

 

2.1.3、客戶端連接

連接服務端:

bin/zkCli.sh -server localhost:2181

查看節點:

[zk: localhost:2181(CONNECTED) 4] ls /

[zookeeper]

創建節點:

[zk: localhost:2181(CONNECTED) 5] create /zk_test my_data

Created /zk_test

[zk: localhost:2181(CONNECTED) 6] ls /

[zk_test, zookeeper]

[zk: localhost:2181(CONNECTED) 7] get /zk_test

my_data

修改節點:

[zk: localhost:2181(CONNECTED) 8] set /zk_test junk

[zk: localhost:2181(CONNECTED) 9] get /zk_test

junk

刪除節點:

[zk: localhost:2181(CONNECTED) 11] delete /zk_test

junk

2.2、多個節點啟動

2.2.1、配置

序號

服務與端口

數據目錄

 

1

192.168.220.13:2181

/var /zookeeper

 

2

192.168.220.14:2181

/var /zookeeper

 

3

192.168.220.15:2181

/var /zookeeper

 

zoo.cfg配置文件:

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

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

# example sakes.

dataDir=/var/zookeeper

# the port at which the clients will connect

clientPort=2181

 

server.1=192.168.229.13:2888:3888

server.2=192.168.229.14:2888:3888

server.3=192.168.229.15:2888:3888

 

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# 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

 

分別在每個服務器/var /zookeeper下創建myid文件,內容如下:

1,2,3(對應zoo.cfg中的server.x)。

 

端口說明:

1、2181:對cline端提供服務

2、3888:選舉leader使用

3、2888:集群內機器通訊使用(Leader監聽此端口)

zk各節點防火牆設置:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT

 

2.2.2、啟動

登錄各節點啟動服務:bin/zkServer.sh start

節點操作:bin/zkCli.sh -server 192.168.229.13:2181

[zk: 192.168.229.13:2181(CONNECTED) 5] ls /

[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper]

[zk: 192.168.229.13:2181(CONNECTED) 6] create /zk_test zk_test_data

Created /zk_test

[zk: 192.168.229.13:2181(CONNECTED) 7] ls /

[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zk_test, zookeeper]

[zk: 192.168.229.13:2181(CONNECTED) 8] get /zk_test

zk_test_data

[zk: 192.168.229.13:2181(CONNECTED) 9] set /zk_test my_data

[zk: 192.168.229.13:2181(CONNECTED) 10] get /zk_test

my_data

[zk: 192.168.229.13:2181(CONNECTED) 11]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM