Version 4 (modified by jazz, 11 years ago) (diff) |
---|
◢ <實作十四> | <回課程大綱> ▲ | <實作十六> ◣
實作十五 Lab15
從 WordCount 範例學習新版 Hadoop MapReduce 的程式組成結構
Learning Hadoop MapReduce Code Structure from WordCount Example
請先連線至 nodeN.3du.me , N 為您的報名編號
STEP 0 : 前置作業
- 首先,請確認您運行於全分散式模式下
~/hadoop_labs/lab002/hadoop-full-mode
- 安裝 screen 並設定 screen
sudo apt-get -y install screen cat > ~/.screenrc <<EOF caption always "%{= wk} %{= KY} [%n]%t @ %H %{-} %= %{= KR} %l %{-} | %{= KG} %Y-%m-%d %{-} " hardstatus alwayslastline " %-Lw%{= Bw}%n%f %t%{-}%+Lw %=|" vbell off EOF
- 快速鍵
- CTRL + a + | – 垂直分割視窗
- CTRL + a + 0 ~ 9 – 從第一個視窗切換到第九個視窗
- CTRL + a + n – 切換到下一個(還存在)的視窗
- CTRL + a + Backspace – Switches to the previous available
- CTRL + a + a – 切換到跟最後一次切換的視窗
- CTRL + a + A – 切換視窗"抬頭"
- CTRL + a + K – 關閉目前視窗
- CTRL + a + c – 開啟一個新的視窗
- CTRL + a + [ - 進入 copy mode,方便上下捲動歷史紀錄(因為常用的 SHIFT + PgUp? / PgDn? 會失效)
- CTRL + a + ESC - 進入 copy mode,方便上下捲動歷史紀錄(因為常用的 SHIFT + PgUp? / PgDn? 會失效)
- Ctrl + a + S - 分割視窗
- Ctrl + a + Tab - 在視窗中移動
- Ctrl + a + Q - 取消分割
STEP 1 : 開啟另一個連線視窗
- https://nodeN.3du.me - 其中 N 為您的報名編號
- http://nodeN.3du.me:50030 - 其中 N 為您的報名編號
- 並且在新個連線視窗中執行以下的指令
watch -d -n 1 "jps | sort -n; printf '\n\n'; hadoop job -list"
STEP 2 : 執行 MapReduce 任務
- 讓我們來觀察一下,當執行 MapReduce 任務時,發生了什麼事情?
cd ~/hadoop_labs/lab007 ant hadoop fs -rmr input output hadoop fs -put ~/hadoop/conf input hadoop jar WordCount.jar input output
- 提交任務後,請觀察另一個視窗 jps 結果的變化,並且觀察 50030 頁面的變化(需自行按 F5 更新畫面)。
- 切換到單機模式,讓我們重新執行一次 WordCount.jar
export HADOOP_CONF_DIR=~/hadoop/conf.local/ hadoop fs -put ~/hadoop/conf local-input hadoop jar WordCount.jar local-input local-output unset HADOOP_CONF_DIR
實作習題
<問題 1> 請問在另一個視窗中,執行 jps 的結果,哪個 java process 代表 WordCount.java 的 main() 函數呢?
(A) TaskTracker (B) RunJar (C) Child (D) Main
<問題 2> 請問在另一個視窗中,執行 jps 的結果,您觀察到最多同時存在幾個名為「Child」的 java process?
(A) 0 (B) 1 (C) 2 (D) 3
<問題 3> 請問切換到本機模式(Local Mode)後,當執行 hadoop jar WordCount.jar 指令時,在另一個視窗中,執行 jps 的結果,您觀察到最多同時存在幾個名為「Child」的 java process?
(A) 0 (B) 1 (C) 2 (D) 3