Changes between Version 6 and Version 7 of jazz/Hadoop_Lab3
- Timestamp:
- Mar 24, 2009, 6:48:25 PM (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
jazz/Hadoop_Lab3
v6 v7 7 7 * 您手邊有兩台電腦,假設剛剛操作的電腦為node1,另一台則為node2。則稍後的環境如下 8 8 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|| 12 12 13 13 * 這個實做會架設運作在叢集環境上的Hadoop,因此若是你的電腦還存在著之前的實做一的環境,請先作step 0,以移除掉之前的設定。 … … 20 20 * node1 (有操作過實做一的電腦)執行 21 21 {{{ 22 ~$ cd ~ 22 23 ~$ killall java 23 24 ~$ 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 26 26 ~$ rm -rf ~/.ssh 27 27 }}} … … 84 84 export HADOOP_PID_DIR=/home/hadooper/pids 85 85 }}} 86 86 * 注意,在此實做中,我們多設定了HADOOP_PID_DIR及HADOOP_LOG_DIR的參數,並且把值寫入到我們hadooper的家目錄中,此舉並非完全必要,但一個目的是介紹更多hadoop-env.sh內的參數,另一目的為讓log,pid等常變資料與hadoop家目錄分離 87 87 88 == step 5. 設定 hadoop-site.xml == 88 89 … … 93 94 }}} 94 95 95 貼上以下內容96 將以下資料取代掉原本的內容 96 97 97 98 {{{ … … 105 106 <property> 106 107 <name>mapred.job.tracker</name> 107 <value> hdfs://Node_2_IP_Addr:9001</value>108 <value>Node_2_IP_Addr:9001</value> 108 109 <description> </description> 109 110 </property> … … 111 112 <name>hadoop.tmp.dir</name> 112 113 <value>/tmp/hadoop/hadoop-${user.name}</value> 113 <description> A base for other temporary directories.</description>114 <description> </description> 114 115 </property> 115 116 </configuration> 116 117 }}} 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 118 121 == step 6. 設定masters及slaves == 119 122 … … 121 124 * 編輯 conf/slaves 122 125 {{{ 123 /opt/hadoop$ gedit conf/ hadoop-site.xml124 }}} 125 內容126 /opt/hadoop$ gedit conf/slaves 127 }}} 128 原本內容只有localhost一行,請刪除此行並換上Node1及node2的ip 126 129 {{{ 127 130 #!sh … … 135 138 {{{ 136 139 /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" 138 141 }}} 139 142 … … 146 149 147 150 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 154 155 }}} 155 156 … … 159 160 /************************************************************ 160 161 STARTUP_MSG: Starting NameNode 161 STARTUP_MSG: host = /localhost162 STARTUP_MSG: host = Node_2_IP_Addr 162 163 STARTUP_MSG: args = [-format] 163 164 STARTUP_MSG: version = 0.18.3 … … 168 169 09/03/23 20:19:47 INFO fs.FSNamesystem: isPermissionEnabled=true 169 170 09/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.171 09/03/23 20:19:47 INFO dfs.Storage: Storage directory /tmp/hadoop/hadoop-hadooper/dfs/name has been successfully formatted. 171 172 09/03/23 20:19:47 INFO dfs.NameNode: SHUTDOWN_MSG: 172 173 /************************************************************ 173 SHUTDOWN_MSG: Shutting down NameNode at /localhost174 SHUTDOWN_MSG: Shutting down NameNode at Node_2_IP_Addr 174 175 ************************************************************/ 175 176 }}} … … 177 178 == step 9. 啟動Hadoop == 178 179 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 ------ 190 209 191 210 == step 8. 檢查運作狀態 == 192 211 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 200 214 201 215 … … 215 229 216 230 == 練習 == 217 231 * 看 conf/hadoop-default.xml 的更多內容 218 232 * 和別人組隊,組成4台node的cluster,其中node1 只當 namenode ,node2 只當 jobtracker,而node3, node4 兩台電腦則身兼 datanode及tasktracker的工作。