close

Zookeeper在HBase的Master與Regionserver中是扮演一個協調器(coordinator),但是Zookeeper只能用在hadoop中?答案是「未必」,那麼這篇只是說明一下如何安裝Zookeeper於叢集中。

行前說明 1. : 因為網路上實在非常多的安裝介紹,所以若是有疑問其實google都可以搜尋到,或是留言問小弟我也可以~^^~。

行前說明 2. : 因為單機版與偽分佈版後輩尚未需要,故直接說明叢集中要如何搭設zookeeper。

行前說明 3. : 請勿直接複製貼上來跑,因為您跟我的環境一定不同,IP一定不同,hostname一定不同,So...請搭配自己的環境來玩^^~。

1. 下載並解壓縮

    - a. 請至(http://www.apache.org/dyn/closer.cgi/zookeeper/)中下載,並將檔案解壓縮。

2. 安裝與設定

    - a. 至/etc/profile下建立Path(後輩是使用3.4.5版)

        export ZOOKEEPER_HOME=/usr/zookeeper-3.4.5

        export PATH=$PATH:$ZOOKEEPER_HOME/bin

    - b. 至$ZOOKEEPER_HOME/conf/下會看到zoo_sample.cfg,請複製一份並命名為zoo.cfg,因為zoo.cfg才是zookeeper使用的config檔。

    - c. 修改zoo.cfg檔

        tickTime=2000 (毫秒)

            - 為基本時間,

        initLimit=10 (10倍的tickTime)

            - 允許follower連線,以及與leader同步的時間長度。如果多數follower均無法在這個時間週期內完成同步,則leader會放棄其領導權,並開始另一次的leader遴選。

        syncLimit=5 (5倍的tickTime)

            - 允許follower與leader同步的時間長度,若follower無法在這段時間內完成同步,follower會自己重新啟動。原本連線於這個follower的client,會重新連線到另一個。

        dataDir=/var/hadoop/zookeeper-data

            注意1: 請創建此目錄,路徑或名稱可以自訂。

            注意2: 請於此目錄下創建檔案並命名為myid,並給編號(0~255),這邊的編號建議master可以給0,其它slave則依序給別的數字。

        clientPort=2181

        server.0=192.168.6.10:2888:3888

        server.1=192.168.6.3:2888:3888

        server.2=192.168.6.4:2888:3888

            注意1: 2181供用戶端連線的port

            注意2: 012對應於上述myid中的編號。

            注意3: port 2888 follower用來連線到leader的port。

            注意4: port 3888 為進行leader選舉的端口。

        上述cfg檔設定完後請將整包zookeeper複製於其它兩台,可以把zookeeper的目錄的權限改成hadoop,這樣用起來是比較方便拉^^。

3. 啟動,注意請勿把「」一起執行。

    - a. 對master與slaves使用 「 zkServer.sh start 」 即可啟動zookeeper。

4. 測試

    - a. 接下來就是要測試zookeeper間有無成功通訊,當Zookeeper啟動時,會讀入myid檔來了解自己是哪一台,接著讀取zoo.cfg檔來確定該監聽哪些port,以及知道在叢集中的其它伺服器的位址。

        master下,執行「 zkCli.sh -server 192.168.6.10:2181 」進入zookeeper的shell中。

        slave下,執行「 zkCli.sh -server 192.168.6.3:2181 」進入zookeeper的shell中。

    - b. 在master上,鍵入 「 ls / 」,可以看到 [hbase, zookeeper],兩台都一樣。

    - c. 在master上,鍵入 「 create /zk my_data 」,可以看到「 Created /zk 」。

    - d. 在master上,鍵入 「 ls / 」,可以看到[zk, hbase, zookeeper]。

    - e. 在slave上,鍵入 「 ls / 」,如果也可以看到[zk, hbase, zookeeper],表示通訊成功。

5. HBase與zookeeper的啟動

    - a. 首先啟動zookeeper,將每一台使用「 zkServer.sh start 」來啟動zookeeper

    - b. 接下來啟動regionserver,「 hbase-daemons.sh start regionserver 」。

    - c. 接下來啟動master,「 hbase-daemon.sh start master 」。

6. 使用zookeeper的shell查看master與regionserver

    - a. 在master上,鍵入 「 ls / 」,可以看到 [hbase, zookeeper]。

    - b. 在master上,鍵入「 ls / hbase」,可以看到一堆東西[splitlog, unassigned, root-region-server, rs, backup-masters, draining, table, master, shutdown, hbaseid],只要出現rs與master,則表示HBase開啟成功,當然也可以從60010的web查看,或是使用jps也可以看到有無啟動成功。

    - c. 在master上,鍵入「 ls / hbase/rs」,可以看到「slave3...與slave4...」的訊息。

7. 在既有的叢集中擴充zookeeper節點

    - a. 擴充節點(192.168.6.5)。

    - b. 請先複製master上整包的zookeeper包於192.168.6.5節點上,並加入

        server.0=192.168.6.10:2888:3888

        server.1=192.168.6.3:2888:3888

        server.2=192.168.6.4:2888:3888

        server.3=192.168.6.5:2888:3888

    - c. 於192.168.6.5這台啟動zookeeper。

    - d. 於192.168.6.5這台啟動regionserver。

    - e. 在master上,鍵入「 ls / hbase/rs」,可以看到「 slave3...、slave4...、slave5... 」的訊息

在接下來我會把書上的例子實驗一遍,在來與大家分享囉^.^~ to be continued...

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 TonyMoMo 的頭像
    TonyMoMo

    TonyMoMo的部落格

    TonyMoMo 發表在 痞客邦 留言(1) 人氣()