當前位置:
首頁 > 最新 > 詳解分散式應用程序協調服務Zookeeper

詳解分散式應用程序協調服務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:清研學堂 |