1、zookeeper 是用來保證zk集羣的數據的事務的一致性
2、集羣搭建
解壓
tar -zxvf zookeeper.gz配置環境變量
ZK_HOME=/opt/zk
PATH =.:$ZK_HOME/bin:$PATH
修改文件
- 創建目錄:mkdir /opt/zk/data
- 把zoo_sample.cfg 複製並且重名民爲zoo.cfg
- 修改zoo.cfg
- zooDir = /opt/zk/data
- server.0=m:2888:3888
- server.1=s1:2888:3888
- server.2=s2:2888:3888
- server.3=s3:2888:3888
- 在namenode節點m上的/opt/zk/data 目錄 創建文件 myid 值爲 0
- s1上的/opt/zk/data 目錄 創建文件 myid 值爲1
- s2上的/opt/zk/data 目錄 創建文件 myid 值爲 2
- s3上的/opt/zk/data 目錄 創建文件 myid 值爲 3
每個節點啓動
zkServer.sh start每個節點驗證
zkServer.sh status //follower leader
3、zookeeper角色
- leader 領導者:負責投票的發起和決議,更新系統狀態
- leaner 學習者 :
- (observer 觀察者)連接client的請求,將請求轉發給leader。不參與選主投票,同步更新leader狀態,其目的爲系統的可拓展性和高效率的讀寫
- (flower跟隨者):用於連接客戶端請求並返回客戶端結果,參與選主投票
- client 客戶端:請求發起方
4、zookeeper在Hadoop及hbase中具體作用
Hadoop有NameNode,HBase有HMaster,爲什麼還需要zookeeper,下面給大家通過例子給大家介紹。
一個Zookeeper的集羣中,3個Zookeeper節點.一個leader,兩個follower的情況下,停掉leader,然後兩個follower選舉出一個leader.獲取的數據不變.我想Zookeeper能夠幫助Hadoop做到:
Hadoop,使用Zookeeper的事件處理確保整個集羣只有一個NameNode,存儲配置信息等.
HBase,使用Zookeeper的事件處理確保整個集羣只有一個HMaster,察覺HRegionServer聯機和宕機,存儲訪問控制列表等.