Hadoop安裝手冊4-新增與刪除Hadoop節點

junsansi發表於2013-02-04

3、HDFS新增節點

現有環境如下:

    192.168.30.203 hdnode1

    192.168.30.204 hdnode2

    192.168.30.205 hdnode3

其中hdnode1是namenode,hdnode2和hdnode3是datanode我們要新增加兩個datanode:

    192.168.30.206 hdnode4

    192.168.30.207 hdnode5

那麼首先初始化hdnode4和hdnode5兩節點,初始化節點部分就不再重複了吧,操作步驟可以參與之前"HADOOP安裝"中的內容。

初始化完之後,hdnode4和hdnode5兩節點應該都擁有了grid使用者,配置好使用者環境變數,解壓好了hadoop軟體包(最好是將原節點中的hadoop資料夾打包複製過來,可以減少配置)。

下面需要進行若干修改了,操作時要注意了,有些操作僅在新增節點執行,還有些操作需要在所有的節點上進行。

修改hosts檔案

修改hosts檔案配置,所有節點都需要執行,通過vi編輯/etc/hosts檔案:

    # vi /etc/hosts

增加兩行:

    192.168.30.206 hdnode4

    192.168.30.207 hdnode5

配置節點間節密碼訪問

注意本步都在grid使用者下操作的喲。首先在hdnode1端執行:

    $ ssh hdnode4 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

    $ ssh hdnode5 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

將新的authorized_keys檔案複製到所有的節點:

    $ scp ~/.ssh/authorized_keys hdnode2:/home/grid/.ssh/authorized_keys

    $ scp ~/.ssh/authorized_keys hdnode3:/home/grid/.ssh/authorized_keys

    $ scp ~/.ssh/authorized_keys hdnode4:/home/grid/.ssh/authorized_keys

    $ scp ~/.ssh/authorized_keys hdnode5:/home/grid/.ssh/authorized_keys

而後可以嘗試在各嘗試相互訪問,看看是否需要輸入密碼。

本步操作中有不明白的可以參考“[三思筆記]hadoop安裝手冊”第1.3小節。

修改masters和slaves檔案

Masters檔案其實也可以不用修改,還記得masters的用途不?沒錯就是secondary namenode嘛,我們們這個測試環境中,就跟namenode放在一起也沒關係的。 如果要修改的話,可以編譯masters檔案,新增一個節點儲存secondary namenode:

    $ vi /usr/local/hadoop-0.20.2/conf/masters 

修改所有節點的slaves檔案,將新增的hdnode4和hdnode5加進去:

    echo "hdnode4" >> /usr/local/hadoop-0.20.2/conf/slaves

    echo "hdnode5" >> /usr/local/hadoop-0.20.2/conf/slaves

修改後的slaves檔案內容如下:

 

    $ more /usr/local/hadoop-0.20.2/conf/slaves 

    hdnode2

    hdnode3

    hdnode4

    hdnode5

新節點中單獨啟動datanode和tasktracker

環境現在已經初始化好了,那麼接下來就可以單獨啟動新節點中的datanode和tasktracker程式了。

分別在hdnode4和hdnode5節點執行:

    $ hadoop-daemon.sh start datanode

    $ hadoop-daemon.sh start tasktracker

這樣HDFS的擴容就完成了,可以通過hadoop dfsadmin命令檢視統計資訊:

    [grid@hdnode4 ~]$ hadoop dfsadmin -report

    Configured Capacity: 422752010240 (393.72 GB)

    Present Capacity: 400489983786 (372.99 GB)

    DFS Remaining: 400489492480 (372.98 GB)

    DFS Used: 491306 (479.79 KB)

    DFS Used%: 0%

    Under replicated blocks: 0

    Blocks with corrupt replicas: 0

    Missing blocks: 0

    -------------------------------------------------

    Datanodes available: 4 (4 total, 0 dead)

    ……

    ……

容量已經擴充到四百G了。

平衡儲存負載

儘管容量擴充套件了,但資料目前仍然是儲存在原有的兩個節點上,接下來可以通過start-balancer.sh進行資料負載均衡:

    $ start-balancer.sh 

    starting balancer, logging to /usr/local/hadoop-0.20.2/bin/../logs/hadoop-grid-balancer-hdnode4.out

    Time Stamp               Iteration#  Bytes Already Moved  Bytes Left To Move  Bytes Being Moved

    The cluster is balanced. Exiting...

對於資料規模較大的HDFS來說,本操作可能需要花費較長時間,因為它需要將資料重新平衡到不同的節點上,因此正式環境操作的話需要慎重。

刪除節點 

這個就不演示了吧,直接關機,就當那臺節點當機了:)

然後呢,然後做什麼?哥們,我們現在部署好了HDFS可以儲存資料,Tasktracker和Jobtracker也已就緒,我們目前已經為分散式計算打好了基礎,接下來,找個順手的java開發工具吧。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-756812/,如需轉載,請註明出處,否則將追究法律責任。

相關文章