| 1 | ◢ <[wiki:Hinet131105/Lab14 實作十四]> | <[wiki:Hinet131105 回課程大綱]> ▲ | <[wiki:Hinet131105/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 | }}} |