|   | 1 | ◢ <[wiki:III140118/Lab14 實作十四]> | <[wiki:III140118 回課程大綱]> ▲ | <[wiki:III140118/Lab16 實作十六]> ◣ | 
                  
                          |   | 2 |  | 
                  
                          |   | 3 | = 實作十五 Lab15 = | 
                  
                          |   | 4 |  | 
                  
                          |   | 5 | {{{ | 
                  
                          |   | 6 | #!html | 
                  
                          |   | 7 | <p style="text-align: center;"><big style="font-weight: bold;"><big>從 WordCount 範例學習新版 Hadoop MapReduce 的程式組成結構<br/>Learning Hadoop MapReduce Code Structure from WordCount Example</big></big></p> | 
                  
                          |   | 8 | }}} | 
                  
                          |   | 9 |  | 
                  
                          |   | 10 | [[PageOutline]] | 
                  
                          |   | 11 |  | 
                  
                          |   | 12 | {{{ | 
                  
                          |   | 13 | #!text | 
                  
                          |   | 14 | 請先連線至 nodeN.3du.me , N 為您的報名編號 | 
                  
                          |   | 15 | }}} | 
                  
                          |   | 16 |  | 
                  
                          |   | 17 | == STEP 0 : 前置作業 == | 
                  
                          |   | 18 |  | 
                  
                          |   | 19 |  * 首先,請確認您運行於全分散式模式下 | 
                  
                          |   | 20 | {{{ | 
                  
                          |   | 21 | ~/hadoop_labs/lab002/hadoop-full-mode | 
                  
                          |   | 22 | }}} | 
                  
                          |   | 23 |  | 
                  
                          |   | 24 | == STEP 1 : 開啟另一個連線視窗 == | 
                  
                          |   | 25 |  | 
                  
                          |   | 26 |  * https://nodeN.3du.me - 其中 N 為您的報名編號 | 
                  
                          |   | 27 |  * http://nodeN.3du.me:50030 - 其中 N 為您的報名編號 | 
                  
                          |   | 28 |  * 並且在新個連線視窗中執行以下的指令 | 
                  
                          |   | 29 | {{{ | 
                  
                          |   | 30 | watch -d -n 1 "jps | sort -n; printf '\n\n'; hadoop job -list" | 
                  
                          |   | 31 | }}} | 
                  
                          |   | 32 |  | 
                  
                          |   | 33 | == STEP 2 : 執行 MapReduce 任務 == | 
                  
                          |   | 34 |  | 
                  
                          |   | 35 |  * 讓我們來觀察一下,當執行 MapReduce 任務時,發生了什麼事情? | 
                  
                          |   | 36 | {{{ | 
                  
                          |   | 37 | cd ~/hadoop_labs/lab007 | 
                  
                          |   | 38 | ant | 
                  
                          |   | 39 | hadoop fs -rmr input output | 
                  
                          |   | 40 | hadoop fs -put ~/hadoop/conf input | 
                  
                          |   | 41 | hadoop jar WordCount.jar input output | 
                  
                          |   | 42 | }}} | 
                  
                          |   | 43 |  | 
                  
                          |   | 44 |  * 提交任務後,請觀察另一個視窗 jps 結果的變化,並且觀察 50030 頁面的變化(需自行按 F5 更新畫面)。 | 
                  
                          |   | 45 |  | 
                  
                          |   | 46 |  * 切換到單機模式,讓我們重新執行一次 WordCount.jar | 
                  
                          |   | 47 | {{{ | 
                  
                          |   | 48 | export HADOOP_CONF_DIR=~/hadoop/conf.local/ | 
                  
                          |   | 49 | hadoop fs -put ~/hadoop/conf local-input | 
                  
                          |   | 50 | hadoop jar WordCount.jar local-input local-output | 
                  
                          |   | 51 | unset HADOOP_CONF_DIR | 
                  
                          |   | 52 | }}} | 
                  
                          |   | 53 |  | 
                  
                          |   | 54 | == 實作習題 == | 
                  
                          |   | 55 |  | 
                  
                          |   | 56 |  <問題 1> 請問在另一個視窗中,執行 jps 的結果,哪個 java process 代表 WordCount.java 的 main() 函數呢? | 
                  
                          |   | 57 | {{{ | 
                  
                          |   | 58 | #!text | 
                  
                          |   | 59 |       (A) TaskTracker | 
                  
                          |   | 60 |       (B) RunJar | 
                  
                          |   | 61 |       (C) Child | 
                  
                          |   | 62 |       (D) Main | 
                  
                          |   | 63 | }}} | 
                  
                          |   | 64 |  | 
                  
                          |   | 65 |  <問題 2> 請問在另一個視窗中,執行 jps 的結果,您觀察到最多同時存在幾個名為「Child」的 java process? | 
                  
                          |   | 66 | {{{ | 
                  
                          |   | 67 | #!text | 
                  
                          |   | 68 |       (A) 0 | 
                  
                          |   | 69 |       (B) 1 | 
                  
                          |   | 70 |       (C) 2 | 
                  
                          |   | 71 |       (D) 3 | 
                  
                          |   | 72 | }}} | 
                  
                          |   | 73 |  | 
                  
                          |   | 74 |  <問題 3> 請問切換到本機模式(Local Mode)後,當執行 hadoop jar WordCount.jar 指令時,在另一個視窗中,執行 jps 的結果,您觀察到最多同時存在幾個名為「Child」的 java process? | 
                  
                          |   | 75 | {{{ | 
                  
                          |   | 76 | #!text | 
                  
                          |   | 77 |       (A) 0 | 
                  
                          |   | 78 |       (B) 1 | 
                  
                          |   | 79 |       (C) 2 | 
                  
                          |   | 80 |       (D) 3 | 
                  
                          |   | 81 | }}} |