zookeeper 單機(jī)運(yùn)行配置

zookeeper 是什么

zookeeper 是 hadoop 下的一個(gè)子項(xiàng)目,是一個(gè)針對(duì)大型分布式系統(tǒng)的可靠的協(xié)調(diào)系統(tǒng) 。
zookeeper 提供了 配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù) 等功能。

zookeeper 運(yùn)作原理

zookeeper 通過(guò) Zab(Zookeeper Atomic Broadcast) 協(xié)議保持集群間的數(shù)據(jù)一致性。
Zab 協(xié)議包括兩個(gè)階段:Leader Election 和 Atomic Broadcast 。

  • Leader Election
  • 此階段集群內(nèi)會(huì)選舉出一個(gè) leader,余下機(jī)器則會(huì)成為 follower。leader 會(huì)通過(guò) broadcast 通知所有 follower ,當(dāng)大部分機(jī)(> 1/2)器完成了與 leader 的狀態(tài)同步后,Leader Election 階段結(jié)束。

  • 當(dāng) leader 失去大多數(shù) follower 時(shí),集群會(huì)再次進(jìn)入 Leader Election 階段并選舉出新的 leader ,使集群回到正確的狀態(tài)。

  • Atomic Broadcast
  • 此階段 leader 會(huì)通過(guò) broadcast 與 follower 通訊,保證 leader 與 follower 具有相同的系統(tǒng)狀態(tài)。

zookeeper 搭建

wget http://mirror.bjtu.edu.cn/apache/zookeeper/stable/zookeeper-3.4.6.tar.gz 
  • 解壓 zookeeper:
    參考命令:
tar -xf zookeeper-3.4.6.tar.gz
cp zookeeper-3.4.6 /usr/local/zookeeper
rm -f zookeeper-3.4.6.tar.gz
  • 配置 zookeeper:

參考命令

#創(chuàng)建相應(yīng)目錄,注意目錄的權(quán)限
mkdir /tmp/zookeeper
mkdir /tmp/zookeeper/data
mkdir /tmp/zookeeper/log

cp /usr/local/zookeeper/conf/zoo_sample.cfg zoo.cfg
vim /usr/local/zookeeper/conf/zoo.cfg

參考配置

tickTime=2000 #zookeeper 服務(wù)器心跳時(shí)間,單位為ms
initLimit=10  #投票選舉新 leader 的初始化時(shí)間
syncLimit=5  #leader 與 follower 心跳檢測(cè)最大容忍時(shí)間,響應(yīng)超過(guò) tickTime * syncLimit,認(rèn)為 leader 丟失該 follower
clientPort=2181 #端口
dataDir=/tmp/zookeeper/data #數(shù)據(jù)目錄
dataLogDir=/tmp/zookeeper/log #日志目錄
  • 配置zookeeper日志
    參考命令:
vim /usr/local/zookeeper/bin/zkEnv.sh

參考配置:

if [ "x${ZOO_LOG_DIR}" = "x" ]  
then  
    ZOO_LOG_DIR="/tmp/zookeeper/log"  
fi  
  
if [ "x${ZOO_LOG4J_PROP}" = "x" ]  
then  
    ZOO_LOG4J_PROP="INFO,ROLLINGFILE"  
fi 
  • 配置環(huán)境變量 :
    參考命令:
vim /etc/profile

新增如下配置:

export ZOOKEEPER_INSTALL=/usr/local/zookeeper  
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin  
  • 運(yùn)行zookeeper
    至此,zookeeper搭建完畢,可以嘗試運(yùn)行zookeeper
    參考命令:
cd /usr/local/zookeeper
bin/zkServer.sh start conf/zoo.cfg #啟動(dòng)zookeeper服務(wù),讀取配置文件為conf/zoo.cfg
bin/zkServer.sh status conf/zoo.cfg #查看指定配置的zookeeper的運(yùn)行狀態(tài)

可以看到當(dāng)前 zookeeper 運(yùn)行狀態(tài)為 Mode:standalone , 至此,zookeeper單機(jī)運(yùn)行配置完成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容