你們很疑惑,大數據分享的好好的怎麼搖身一變,又到zookeeper了,從事java開發的大部分都接觸過zookeeper,其實zookeeper是hadoop生態體系的的一個子項目,一個動物管理員,hadoop的其餘子項目的名稱頗有意思,基本上都是動物,可見hadoop裏面的好東西真很多,好了,言歸正傳!
什麼是zookeeper?
這個也是一個考驗對zookeeper理解的一個問題,徹底沒有必要背概念,我概念也記不住,zookeeper就是一個協調者,尤爲是在分佈式中。html
開始搭建!
這裏我用三臺服務器java
linux小技巧記錄
複製一行並粘貼到下一行 當前行yy p
修改network
sudo vi /etc/sysconfig/network
sudo hostname my01
添加hosts
sudo vi /etc/hosts
這個命令不用啓用,使用到的時候讀取的,這樣就能夠了
複製代碼
正式開始!linux
解壓到app中 tar -zxvf zoo** -C app/算法
cd app/zoo**/confapache
vi zoo.cfgruby
修改:服務器
# 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=/home/songlj/app/zookeeper-3.4.5/data
# the port at which the clients will connect
clientPort=2181
#
# 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
server.1=my06:2888:3888
server.2=my07:2888:3888
server.3=my08:2888:3888
複製代碼
而且要在/home/songlj/app/zookeeper-3.4.5/data這個目錄下建立一個myid的文件對應id
echo 1 > myidapp
將這個zookeeper-3.4.5發送到my07,my08上分佈式
scp -r zookeeper-3.4.5/ my07:/home/songlj/app/
scp -r zookeeper-3.4.5/ my08:/home/songlj/app/ide
這樣就準備好了,啓動!
三臺都運行 bin目錄下 ./zkServer.sh start
./zkServer.sh status
我啓動的時候是6,7,8依次啓動的,這裏先說明一下,zookeeper的leader的選舉到中間的那一臺服務器就是第7臺,爲何呢?這個就須要看源碼了,有機會給你們分享zookeeper的leader選舉的算法,今天就到這裏望指正,不吝賜教!