Changes between Version 6 and Version 7 of jazz/Hadoop_Lab3


Ignore:
Timestamp:
Mar 24, 2009, 6:48:25 PM (16 years ago)
Author:
waue
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • jazz/Hadoop_Lab3

    v6 v7  
    77 * 您手邊有兩台電腦,假設剛剛操作的電腦為node1,另一台則為node2。則稍後的環境如下
    88 
    9  || || 管理Data的身份 || 管理Job的身份 ||
    10  || node1 || namenode(master)& datanode || tasktracker(slave)||
    11  || node2 || datanode(slave) || jobtracker(master)& tasktracker||
     9 || || '''管理Data的身份''' || '''管理Job的身份''' ||
     10 || '''node1''' || namenode(master)& datanode || tasktracker(slave)||
     11 || '''node2''' || datanode(slave) || jobtracker(master)& tasktracker||
    1212 
    1313 * 這個實做會架設運作在叢集環境上的Hadoop,因此若是你的電腦還存在著之前的實做一的環境,請先作step 0,以移除掉之前的設定。
     
    2020 * node1 (有操作過實做一的電腦)執行
    2121{{{
     22~$ cd ~
    2223~$ killall java
    2324~$ rm -rf /tmp/hadoop-hadooper*
    24 ~$ rm -rf /opt/hadoop/logs/*/tmp/hadoop-hadooper
    25 ~$ rm -rf /opt/hadoop
     25~$ sudo rm -rf /opt/hadoop
    2626~$ rm -rf ~/.ssh
    2727}}}
     
    8484export HADOOP_PID_DIR=/home/hadooper/pids
    8585}}}
    86 
     86   * 注意,在此實做中,我們多設定了HADOOP_PID_DIR及HADOOP_LOG_DIR的參數,並且把值寫入到我們hadooper的家目錄中,此舉並非完全必要,但一個目的是介紹更多hadoop-env.sh內的參數,另一目的為讓log,pid等常變資料與hadoop家目錄分離
     87 
    8788 == step 5. 設定 hadoop-site.xml ==
    8889 
     
    9394}}}
    9495
    95  貼上以下內容
     96 將以下資料取代掉原本的內容
    9697
    9798{{{
     
    105106  <property>
    106107    <name>mapred.job.tracker</name>
    107     <value>hdfs://Node_2_IP_Addr:9001</value>
     108    <value>Node_2_IP_Addr:9001</value>
    108109    <description>  </description>
    109110  </property>
     
    111112    <name>hadoop.tmp.dir</name>
    112113    <value>/tmp/hadoop/hadoop-${user.name}</value>
    113     <description>A base for other temporary directories.</description>
     114    <description> </description>
    114115  </property>
    115116</configuration>
    116117}}}
    117 
     118   * 注意! 我們多加了一個參數hadoop.tmp.dir,讓預設的中介資料存放在/tmp/hadoop/ 而不是/tmp/ 下,更多內容可以看conf/hadoop-default.xml
     119   * 注意!fs.default.name = hdfs://Node_1_IP_Addr:9000/ ;而mapred.job.tracker = Node_2_IP_Addr:9001,看出差異了嗎!一個有指hdfs://,一個沒有,重要!易混淆。
     120   
    118121 == step 6. 設定masters及slaves ==
    119122 
     
    121124   * 編輯 conf/slaves
    122125{{{
    123 /opt/hadoop$ gedit conf/hadoop-site.xml
    124 }}}
    125  內容
     126/opt/hadoop$ gedit conf/slaves
     127}}}
     128 原本內容只有localhost一行,請刪除此行並換上Node1及node2的ip
    126129{{{
    127130#!sh
     
    135138{{{
    136139/opt/hadoop$ ssh Node_2_IP_Addr "sudo mkdir /opt/hadoop"
    137 /opt/hadoop$ ssh Node_2_IP_Addr "sudo chown -R hadoop:hadooper /opt/hadoop"
     140/opt/hadoop$ ssh Node_2_IP_Addr "sudo chown -R hadooper:hadoop /opt/hadoop"
    138141}}}
    139142
     
    146149
    147150
    148  * 以上我們已經安裝及設定好 Hadoop 的叢集環境,接著讓我們來啟動 Hadoop ,首先還是先格式化hdfs
    149 
    150  * 在node1 上操作
    151  
    152 {{{
    153 /opt/hadoop$ bin/hadoop namenode -format
     151 * 以上我們已經安裝及設定好 Hadoop 的叢集環境,接著讓我們來啟動 Hadoop ,首先還是先格式化hdfs,在node1 上操作
     152 
     153{{{
     154/opt/hadoop$ /opt/hadoop$ bin/hadoop namenode -format
    154155}}}
    155156
     
    159160/************************************************************
    160161STARTUP_MSG: Starting NameNode
    161 STARTUP_MSG:   host = /localhost
     162STARTUP_MSG:   host = Node_2_IP_Addr
    162163STARTUP_MSG:   args = [-format]
    163164STARTUP_MSG:   version = 0.18.3
     
    16816909/03/23 20:19:47 INFO fs.FSNamesystem: isPermissionEnabled=true
    16917009/03/23 20:19:47 INFO dfs.Storage: Image file of size 82 saved in 0 seconds.
    170 09/03/23 20:19:47 INFO dfs.Storage: Storage directory /tmp/hadoop-hadooper/dfs/name has been successfully formatted.
     17109/03/23 20:19:47 INFO dfs.Storage: Storage directory /tmp/hadoop/hadoop-hadooper/dfs/name has been successfully formatted.
    17117209/03/23 20:19:47 INFO dfs.NameNode: SHUTDOWN_MSG:
    172173/************************************************************
    173 SHUTDOWN_MSG: Shutting down NameNode at /localhost
     174SHUTDOWN_MSG: Shutting down NameNode at Node_2_IP_Addr
    174175************************************************************/
    175176}}}
     
    177178== step 9. 啟動Hadoop ==
    178179
    179  * 在node1上,執行下面的命令啟動HDFS:
    180 $ bin/start-dfs.sh
    181 
    182    * bin/start-dfs.sh腳本會參照namenode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動datanode守護進程。
    183 
    184  * 在node2上,執行下面的命令啟動Map/Reduce:
    185 {{{
    186 $ ssh Node_2_IP_Addr "bin/start-mapred.sh"
    187 }}}
    188 
    189    * bin/start-mapred.sh腳本會參照jobtracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動tasktracker。
     180 * bin/start-dfs.sh腳本會參照namenode上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動datanode。
     181 
     182   * 在node1上,執行下面的命令啟動HDFS:
     183   
     184{{{
     185/opt/hadoop$ bin/start-dfs.sh
     186}}}
     187
     188
     189------
     190   * http://Node_1_IP_Addr:50070/ - Hadoop DFS 狀態
     191   * [[Image(datanode.png)]]
     192------
     193   
     194   * ps: 然而JobTracker還沒啟動,因此 http://Node_2_IP_Addr:50030/ 網頁無法顯示
     195
     196 * bin/start-mapred.sh腳本會參照jobtracker上${HADOOP_CONF_DIR}/slaves文件的內容,在所有列出的slave上啟動tasktracker。
     197
     198   * 用ssh 操作node2執行下面的命令啟動Map/Reduce:
     199   
     200{{{
     201/opt/hadoop$ ssh Node_2_IP_Addr "/opt/hadoop/bin/start-mapred.sh"
     202}}}
     203
     204 * 啟動之後, jobtracker也正常運作囉!
     205------
     206   * http://Node_2_IP_Addr:50030/ - Hadoop 管理介面
     207   * [[Image(job.png)]]
     208------
    190209
    191210== step 8. 檢查運作狀態 ==
    192211
    193  * 啟動之後,可以檢查以下網址,來觀看服務是否正常。
    194  
    195    * http://Node_2_IP_Addr:50030/ - Hadoop 管理介面
    196    * [[Image(hadoop_administration.png)]]
    197 ------
    198    * http://Node_1_IP_Addr:50070/ - Hadoop DFS 狀態
    199    * [[Image(hadoop_dfs_status.png)]]
     212
     213
    200214
    201215
     
    215229
    216230== 練習 ==
    217 
     231 * 看 conf/hadoop-default.xml 的更多內容
    218232 * 和別人組隊,組成4台node的cluster,其中node1 只當 namenode ,node2 只當 jobtracker,而node3, node4 兩台電腦則身兼 datanode及tasktracker的工作。