Changes between Version 8 and Version 9 of Hadoop_Lab7


Ignore:
Timestamp:
Feb 25, 2011, 11:55:13 AM (13 years ago)
Author:
jazz
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Hadoop_Lab7

    v8 v9  
    88== 前言 ==
    99
    10  * 您手邊有兩台電腦,假設剛剛操作的電腦為"主機一" ,另一台則為"主機二" 。則稍後的環境如下
     10 * 您手邊有兩台電腦,假設剛剛操作的電腦為"node1" ,另一台則為"node2" 。則稍後的環境如下
    1111 
    1212 || || '''管理Data的身份''' || '''管理Job的身份''' ||
    13  || '''"主機一" ''' || namenode + datanode || jobtracker + tasktracker||
    14  || '''"主機二" ''' || datanode|| tasktracker ||
     13 || '''"node1" ''' || namenode + datanode || jobtracker + tasktracker||
     14 || '''"node2" ''' || datanode|| tasktracker ||
    1515 
    1616 * 這個實做會架設運作在叢集環境上的Hadoop,因此若是你的電腦還存在著之前的實做一的環境,請先作step 0,以移除掉之前的設定。
    1717
    18  * 確認您"主機一"的 hostname 與 "主機二" 的 hostname,並將下面指令有 主機一與主機二 的地方作正確的取代
     18 * 確認您"node1"的 hostname 與 "node2" 的 hostname,並將下面指令有 node1與node2 的地方作正確的取代
    1919
    2020 * 維持好習慣,請幫你待會要操作的主機設root密碼
     
    2525=== 清除所有在實做一作過的環境 ===
    2626
    27  * 在 "主機一"  (有操作過 實做一 的電腦)上操作
     27 * 在 "node1"  (有操作過 實做一 的電腦)上操作
    2828{{{
    2929~$ cd ~
     
    4545}}}
    4646
    47  * 在"主機一" 上操作
     47 * 在"node1" 上操作
    4848 * 接著將key產生並複製到其他node上
    4949{{{
    5050~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ""
    5151~$ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
    52 ~$ scp -r ~/.ssh 主機二:~/
     52~$ scp -r ~/.ssh node2:~/
    5353}}}
    5454 * 測試看看是否登入免密碼
    5555{{{
    56 ~$ ssh 主機二
    57 ~$ ssh 主機一
     56~$ ssh node2
     57~$ ssh node1
    5858~$ exit
    5959~$ exit
     
    6666
    6767 * 為兩台電腦安裝java
    68    * "主機一"  & "主機二"  都要操作以下指令
     68   * "node1"  & "node2"  都要操作以下指令
    6969{{{
    7070~$ sudo apt-get purge java-gcj-compat
    7171~$ sudo apt-get install sun-java6-bin  sun-java6-jdk sun-java6-jre
    72 ~$ ssh 主機二
     72~$ ssh node2
    7373~$ sudo apt-get purge java-gcj-compat
    7474~$ sudo apt-get install sun-java6-bin  sun-java6-jdk sun-java6-jre
     
    7777   
    7878
    79  == step 3. 下載安裝Hadoop到"主機一"  ==
    80 
    81  * 先在"主機一" 上安裝,其他node的安裝等設定好之後在一起作
     79 == step 3. 下載安裝Hadoop到"node1"  ==
     80
     81 * 先在"node1" 上安裝,其他node的安裝等設定好之後在一起作
    8282
    8383{{{
     
    9393 == step 4. 設定 hadoop-env.sh ==
    9494 
    95  * "主機一" 上用gedit 編輯 conf/hadoop-env.sh
     95 * "node1" 上用gedit 編輯 conf/hadoop-env.sh
    9696
    9797{{{
     
    127127  <property>
    128128    <name>fs.default.name</name>
    129     <value>hdfs://主機一:9000</value>
     129    <value>hdfs://node1:9000</value>
    130130  </property>
    131131  <property>
     
    165165  <property>
    166166    <name>mapred.job.tracker</name>
    167     <value>主機一:9001</value>
     167    <value>node1:9001</value>
    168168  </property>
    169169</configuration>
     
    171171}}}
    172172
    173    * 注意!fs.default.name = hdfs://主機一:9000/ ;而mapred.job.tracker = 主機一:9001,看出差異了嗎!一個有指hdfs://,一個沒有,重要!易混淆。
     173   * 注意!fs.default.name = hdfs://node1:9000/ ;而mapred.job.tracker = node1:9001,看出差異了嗎!一個有指hdfs://,一個沒有,重要!易混淆。
    174174   
    175175 == step 6. 設定masters及slaves ==
     
    180180/opt/hadoop$ gedit conf/slaves
    181181}}}
    182  原本內容只有localhost一行,請刪除此行並換上"主機一" 及"主機二" 的ip
    183 {{{
    184 #!sh
    185 主機一
    186 主機二
     182 原本內容只有localhost一行,請刪除此行並換上"node1" 及"node2" 的ip
     183{{{
     184#!sh
     185node1
     186node2
    187187}}}
    188188
    189189== step 7. Hadoop_Home內的資料複製到其他主機上 ==
    190190
    191  * 在"主機一" 上對遠端"主機二" 作開資料夾/opt/hadoop及權限設定
    192 {{{
    193 /opt/hadoop$ ssh 主機二 "sudo mkdir /opt/hadoop"
    194 /opt/hadoop$ ssh 主機二 "sudo chown -R hadooper:hadooper /opt/hadoop"
    195 /opt/hadoop$ ssh 主機二 "sudo mkdir /var/hadoop"
    196 /opt/hadoop$ ssh 主機二 "sudo chown -R hadooper:hadooper /var/hadoop"
    197 }}}
    198 
    199  * 複製"主機一" 的hadoop資料夾到"主機二" 上
    200 {{{
    201 /opt/hadoop$ scp -r /opt/hadoop/* 主機二:/opt/hadoop/
     191 * 在"node1" 上對遠端"node2" 作開資料夾/opt/hadoop及權限設定
     192{{{
     193/opt/hadoop$ ssh node2 "sudo mkdir /opt/hadoop"
     194/opt/hadoop$ ssh node2 "sudo chown -R hadooper:hadooper /opt/hadoop"
     195/opt/hadoop$ ssh node2 "sudo mkdir /var/hadoop"
     196/opt/hadoop$ ssh node2 "sudo chown -R hadooper:hadooper /var/hadoop"
     197}}}
     198
     199 * 複製"node1" 的hadoop資料夾到"node2" 上
     200{{{
     201/opt/hadoop$ scp -r /opt/hadoop/* node2:/opt/hadoop/
    202202}}}
    203203
     
    205205
    206206
    207  * 以上我們已經安裝及設定好 Hadoop 的叢集環境,接著讓我們來啟動 Hadoop ,首先還是先格式化hdfs,在"主機一"  上操作
     207 * 以上我們已經安裝及設定好 Hadoop 的叢集環境,接著讓我們來啟動 Hadoop ,首先還是先格式化hdfs,在"node1"  上操作
    208208 
    209209{{{
     
    216216/************************************************************
    217217STARTUP_MSG: Starting NameNode
    218 STARTUP_MSG:   host = 主機一
     218STARTUP_MSG:   host = node1
    219219STARTUP_MSG:   args = [-format]
    220220
     
    23023009/03/23 20:19:47 INFO dfs.NameNode: SHUTDOWN_MSG:
    231231/************************************************************
    232 SHUTDOWN_MSG: Shutting down NameNode at 主機一
     232SHUTDOWN_MSG: Shutting down NameNode at node1
    233233************************************************************/
    234234}}}
     
    238238 * bin/start-dfs.sh腳本會參照namenode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動datanode。
    239239 
    240    * 在"主機一" 上,執行下面的命令啟動HDFS:
     240   * 在"node1" 上,執行下面的命令啟動HDFS:
    241241   
    242242{{{
     
    246246
    247247------
    248    * http://主機一:50070/ - Hadoop DFS 狀態
     248   * http://node1:50070/ - Hadoop DFS 狀態
    249249   * [[Image(wiki:0428Hadoop_Lab3:datanode.png)]]
    250250------
    251251   
    252    * ps: 然而JobTracker還沒啟動,因此 http://主機一:50030/ 網頁無法顯示
     252   * ps: 然而JobTracker還沒啟動,因此 http://node1:50030/ 網頁無法顯示
    253253
    254254 * bin/start-mapred.sh腳本會參照jobtracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動tasktracker。
    255255
    256    * 在"主機一"執行下面的命令啟動Map/Reduce:
     256   * 在"node1"執行下面的命令啟動Map/Reduce:
    257257   
    258258{{{
     
    262262 * 啟動之後, jobtracker也正常運作囉!
    263263------
    264    * http://主機一:50030/ - Hadoop 管理介面
     264   * http://node1:50030/ - Hadoop 管理介面
    265265   * [[Image(wiki:0428Hadoop_Lab3:job.png)]]
    266266------
     
    268268== step 10. 停止hadoop ==
    269269
    270  * 在"主機一" 上,執行下面的命令停止HDFS:
     270 * 在"node1" 上,執行下面的命令停止HDFS:
    271271{{{
    272272/opt/hadoop$ bin/stop-dfs.sh
     
    274274   * bin/stop-dfs.sh腳本會參照namenode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上停止namenode
    275275
    276  * 在"主機一" 上,執行下面的命令停止Map/Reduce:
     276 * 在"node1" 上,執行下面的命令停止Map/Reduce:
    277277{{{
    278278/opt/hadoop$ bin/stop-mapred.sh
     
    313313== 練習 ==
    314314 * 看 conf/hadoop-default.xml 的更多內容
    315  * 和別人組隊,組成4台node的cluster,其中"主機一"  只當 namenode ,"主機二"  只當 jobtracker,而node3, node4 兩台電腦則身兼 datanode及tasktracker的工作。
     315 * 和別人組隊,組成4台node的cluster,其中"node1"  只當 namenode ,"node2"  只當 jobtracker,而node3, node4 兩台電腦則身兼 datanode及tasktracker的工作。