{{{ #!html
實作一: Hadoop Streaming 操作練習
}}} [[PageOutline]] [wiki:NCHCCloudCourse110721 回課程大綱] == 前言 == * 本實作基於 Ubuntu 10.04 LTS 版本(Lucid)。 * 本頁面的部分指令,是針對不熟悉 Linux 文字編輯器的使用者所設計的'懶人'設定法,您也可以使用習慣使用的文字編輯器(如:vi,nano,joe等)進行修改。 * '''黑底白字的部分為指令或console秀出的畫面''',請自行剪貼提示符號 "$"(代表一般使用者) 或 "#"(代表最高權限 root 管理者) 之後的指令。如: {{{ /home/DIR$ Copy_Command From To ... }}} 則複製''' Copy_Command From To ... ''' 這個指令,貼到你的console來執行。(/home/DIR 代表目前所在的目錄路徑) * '''白底黑字的部分為文件內的內容''' ,如 {{{ #!sh I am context. }}} 如果熟悉vi,nano,joe等編輯器可複製此區內容貼到文件內(雖然此頁面的指令都已經簡化過) * 登入資訊 || 使用者 || hadoop|| || 群組 || hadoop || || 密碼 || ****** || * hadoop 身份擁有sudoer 的權限 == Hadoop Streaming with commands == * 確認 hadoop 有啟動 {{{ hadoop@lucid:~$ cd /opt/hadoop hadoop@lucid:/opt/hadoop$ bin/start-all.sh }}} * 範例一:使用 cat 當 mapper,使用 wc 當 reducer {{{ hadoop@lucid:/opt/hadoop$ bin/hadoop fs -put conf input hadoop@lucid:/opt/hadoop$ bin/hadoop jar ./contrib/streaming/hadoop-0.20.2-streaming.jar -input input -output output -mapper /bin/cat -reducer /usr/bin/wc }}} * 範例二:使用 Bash Shell Script 當 Mapper 與 Reducer {{{ hadoop@lucid:/opt/hadoop$ echo "sed -e \"s/ /\n/g\" | grep ." > streamingMapper.sh hadoop@lucid:/opt/hadoop$ echo "uniq -c | awk '{print \$2 \"\t\" \$1}'" > streamingReducer.sh hadoop@lucid:/opt/hadoop$ chmod a+x streamingMapper.sh hadoop@lucid:/opt/hadoop$ chmod a+x streamingReducer.sh hadoop@lucid:/opt/hadoop$ bin/hadoop fs -rmr input output hadoop@lucid:/opt/hadoop$ bin/hadoop fs -put conf input hadoop@lucid:/opt/hadoop$ bin/hadoop jar ./contrib/streaming/hadoop-0.20.2-streaming.jar -input input -output output -mapper streamingMapper.sh -reducer streamingReducer.sh -file streamingMapper.sh -file streamingReducer.sh }}} * 觀看執行結果 {{{ hadoop@lucid:/opt/hadoop$ bin/hadoop fs -cat output/part-00000 }}}