詳解分散式應用程序協調服務Zookeeper
主從結構:HDFS、Yarn、HBase、storm、spark、zookeeper都存在單點故障問題
hadoop1.x沒有解決方案
hadoop2.x利用zookeeper實現HA
zookeeper是開源的分散式應用程序協調服務,是Google chubby的開源實現
zookeeper相當於一個資料庫,可以實現HA,zookeeper的功能:配置管理、集群管理、分散式鎖
zookeeper的體系結構:leader和follower
zookeeper集群本身具有leader選舉功能(解決單點故障問題,因此zookeeper集群至少需要三台)和數據同步功能(保證數據的安全性),
選舉埠號:3888,同步埠號:2888
zookeeper也支持單點部署,不存在leader選舉功能(paxos協議)和數據同步功能(zab協議),狀態:standalone(單獨的、獨立的)
paxos協議的核心思想:當多數server寫成功,則任務數據寫成功。如果有3個server,則兩個寫成功即可。
安裝和配置zookeeper:
安裝zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training
配置zookeeper:配置ZOOKEEPER_HOME環境變數:
vim ~/.bash_profile
export ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10
export PATH=$ZOOKEEPER_HOME/bin:$PATH
source ~/.bash_profile
zookeeper的核心配置文件:conf/zoo.cfg 使用cp zoo_sample.cfg zoo.cfg得到zoo.cfg
zookeeper的安裝模式:
1、單點模式:一台機器,不存在leader選舉功能和數據同步功能 狀態:standalone
修改配置文件zoo.cfg:
1、指定zookeeper中數據保存的目錄:
dataDir=/root/training/zookeeper-3.4.10/tmp
2、指定zookeeper的主機是誰:
server.1=bigdata11:2888:3888
3、指定server.1的myid:1
2、集群模式:至少三台機器以上 具有leader選舉功能和數據同步功能 狀態:一個leader,多個follower
1、在bigdata12上安裝和配置zookeeper:
安裝zookeeper:tar -zxvf zookeeper-3.4.10.tar.gz -C ~/training
配置zookeeper:配置ZOOKEEPER_HOME環境變數:
ZOOKEEPER_HOME=/root/training/zookeeper-3.4.10
PATH=$ZOOKEEPER_HOME/bin:$PAHT
2、修改配置文件zoo.cfg:
1、指定zookeeper中數據保存的目錄:
dataDir=/root/training/zookeeper-3.4.10/tmp
2、指定zookeeper的主機:
server.1=bigdata12:2888:3888
server.2=bigdata13:2888:3888
server.3=bigdata14:2888:3888
3、指定server.1的myid:1
3、把bigdata12上的zookeeper複製到其他節點上:
scp -r zookeeper-3.4.10 root@bigdata12:/root/training
scp -r zookeeper-3.4.10 root@bigdata13:/root/training
scp -r zookeeper-3.4.10 root@bigdata14:/root/training
4、修改bigdata13和bigdata14上的myid文件:
5、在每個節點上啟動zookeeper:zkServer.sh start
zookeeper的數據模型:
zookeeper的數據模型類似於Linux文件系統,呈樹形結構,每個目錄稱作一個z節點,每個z節點上可以存儲少量數據,默認1M
啟動zookeeper:zkServer.sh start
停止zookeeper:zkServer.sh stop
查看zookeeper的狀態:zkServer.sh status
啟動zookeeper的客戶端命令行工具:zkCli.sh
zookeeper的客戶端命令行工具埠號:2181
在zookeeper中創建節點添加數據:create /mydata helloworld
在zookeeper中查看節點:get /mydata
作者:李金澤AllenLi,清華大學在讀碩士,研究方向:大數據和人工智慧
TAG:清研學堂 |