Hadoop初學指南(10)--ZooKeeper的叢集安裝和操作

來源:互聯網
上載者:User

標籤:同步   hadoop   叢集   

本文簡單介紹了ZooKeeper的基本知識。


(1)概述

①什麼是ZooKeeper?

Zookeeper 是 Google 的 Chubby一個開源的實現,是 Hadoop 的分布式協調服務

它包含一個簡單的原語集,分布式應用程式可以基於它實現同步服務,配置維護和命名服務等

②Zookeeper的角色

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/5A/wKioL1OzxZahBuIGAAECR45s2BU483.jpg" title="圖片1.jpg" alt="wKioL1OzxZahBuIGAAECR45s2BU483.jpg" />

③為什麼使用Zookeeper?

大部分分布式應用需要一個主控、協調器或控制器來管理物理分布的子進程(如資源、任務分配等)

目前,大部分應用需要開發私人的協調程式,缺乏一個通用的機制

協調程式的反覆編寫浪費,且難以形成通用、伸縮性好的協調器

ZooKeeper:提供通用的分布式鎖服務,用以協調分布式應用

④Zookeeper的特性

Zookeeper是簡單的

Zookeeper是富有表現力的

Zookeeper具有高可用性

Zookeeper採用松耦合互動方式

Zookeeper是一個資產庫


(2)安裝

①解壓

命令:tar -zvxf zookeeper-3.4.5.tar.gz

②為了以後操作方便重新命名解壓後檔案夾

命令:mv zookeeper-3.4.5 zk

③設定環境變數

命令:vim /etc/profile

增加ZOOKEEPER_HOME並修改PATH

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/65/wKioL1OzzC6wNBPxAACFSjhm1qo198.jpg" title="zk2.png" alt="wKioL1OzzC6wNBPxAACFSjhm1qo198.jpg" />

修改完成之後重新載入配置:

source /etc/profile

④修改zookeeper設定檔

修改在zk/conf下zoo_sample.cfg為zoo.cfg,並編輯該檔案

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/69/wKiom1OzzxfivrA0AAJY5yFzeks033.jpg" title="zk3.png" alt="wKiom1OzzxfivrA0AAJY5yFzeks033.jpg" />

其中dataDir表示叢集的資料,server.後面的編號表示zookeeper叢集主機的編號,hadoop0是我的主機名稱,2888與3888是連接埠,2888是zookeeper角色的連接埠,3888是zookeeper傳輸資料的連接埠。


⑤建立檔案夾/usr/local/zk/data,並在檔案夾中建立myid檔案,內容為當前主機對應的zookeeper叢集編號,例如當前主機是hadoop0,myid檔案內容如下:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/38/6E/wKiom1Oz0NDjyIzLAAAt-eX0C1c516.jpg" title="zk4.png" alt="wKiom1Oz0NDjyIzLAAAt-eX0C1c516.jpg" />

⑥同理修改其他主機上的檔案,也可以用scp進行複製。


⑦啟動zookeeper

進入bin目錄下執行啟動命令,命令如下:

zkServer.sh start

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/38/71/wKiom1Oz0zSTy_XeAADfRppAXQA298.jpg" title="zk5.png" alt="wKiom1Oz0zSTy_XeAADfRppAXQA298.jpg" />

此時,hadoop0節點的zookeeper叢集啟動,而後可以看一下zookeeper.out檔案,內容如下:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/38/71/wKioL1Oz042BC6RtAAfA06RNE3U816.jpg" title="zk6.png" alt="wKioL1Oz042BC6RtAAfA06RNE3U816.jpg" />

可以看到叢集已經識別myid檔案,而由於其他節點的叢集沒有啟動所以會報錯,此時只需要把其他節點中的叢集啟動即可。


(3)Zookeeper的角色

領導者(leader),負責進行投票的發起和決議,更新系統狀態

學習者(learner),包括跟隨者(follower)和觀察者(observer),follower用於接受用戶端請求並想用戶端返回結果,在選主過程中參與投票

Observer可以接受用戶端串連,將寫請求轉寄給leader,但observer不參加投票過程,只同步leader的狀態,observer的目的是為了擴充系統,提高讀取速度

用戶端(client),請求發起方


啟動叢集後,可以使用zkServer.sh status來查看角色

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/38/75/wKioL1Oz1PaT_tYmAABzdFW_R2E531.jpg" style="float:none;" title="zk7.png" alt="wKioL1Oz1PaT_tYmAABzdFW_R2E531.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/76/wKiom1Oz1SXwFhvNAABj3NM7qQs943.jpg" style="float:none;" title="zk8.png" alt="wKiom1Oz1SXwFhvNAABj3NM7qQs943.jpg" />

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/38/75/wKioL1Oz1PaSjX5-AABllK-qZxQ633.jpg" style="float:none;" title="zk9.png" alt="wKioL1Oz1PaSjX5-AABllK-qZxQ633.jpg" />



(3)zookeeper的shell基本操作

使用zkCli.sh可以進入zookeeper的shell操作端

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/78/wKiom1Oz1_PBoYhzAAScq-8k2kw185.jpg" title="zk10.png" alt="wKiom1Oz1_PBoYhzAAScq-8k2kw185.jpg" />

鍵入help(任意不支援的命令即可)可以查看支援的命令:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/38/78/wKiom1Oz2EvQiobNAAETsSXIovY857.jpg" title="zk11.png" alt="wKiom1Oz2EvQiobNAAETsSXIovY857.jpg" />

使用ls /查看目錄,同時也可以看到zookeeper會自動累加操作命令數:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/77/wKioL1Oz2FXwTgvoAABWL050rJQ404.jpg" title="zk12.png" alt="wKioL1Oz2FXwTgvoAABWL050rJQ404.jpg" />

建立節點並查看:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/38/78/wKiom1Oz2NiiezFxAAE0AK8rc_4225.jpg" title="zk13.png" alt="wKiom1Oz2NiiezFxAAE0AK8rc_4225.jpg" />

此時,如果用其他節點登入,可以看到資料已經同步到叢集中了。

本文出自 “Xlows” 部落格,請務必保留此出處http://xlows.blog.51cto.com/5380484/1433662

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.