| 1 | [[PageOutline]] |
| 2 | |
| 3 | ◢ <[wiki:III131207/Lab6 實作六]> | <[wiki:III131207 回課程大綱]> ▲ | <[wiki:III131207/Lab8 實作八]> ◣ |
| 4 | |
| 5 | = 實作七 Lab 7 = |
| 6 | |
| 7 | {{{ |
| 8 | #!html |
| 9 | <div style="text-align: center;"><big style="font-weight: bold;"><big>在 Hadoop4Win 環境下編譯 MapReduce 程式<br/>Compiling Hadoop MapReduce Java Program in Hadoop4Win</big></big></div> |
| 10 | }}} |
| 11 | |
| 12 | {{{ |
| 13 | #!text |
| 14 | 以下練習,請在本機的 Hadoop4Win 環境操作。 |
| 15 | }}} |
| 16 | |
| 17 | == 練習一 : 字數統計(基礎篇) == |
| 18 | == Practice 1 : Word Count (Basic) == |
| 19 | |
| 20 | * 首先請回到家目錄,建立一個程式專案的目錄,假設取名為 my-code |
| 21 | {{{ |
| 22 | ~$ cd |
| 23 | ~$ mkdir my-code |
| 24 | ~$ cd my-code |
| 25 | }}} |
| 26 | * 接著,建立一個目錄 src 用來存放 Java 原始碼。並且下載 build.xml 到 my-code 目錄中。 |
| 27 | {{{ |
| 28 | ~/my-code$ mkdir -p src |
| 29 | ~/my-code$ wget http://www.classcloud.org/hadoop4win/build.xml |
| 30 | }}} |
| 31 | * 然後將您要編譯的 Java 原始碼置於 src 目錄中(開啟檔案總管,存到 c:\hadoop4win\home\${user}\my-code\src) |
| 32 | * 這裡我們提供一個 WordCount.java 作為示範。 |
| 33 | {{{ |
| 34 | ~/my-code$ wget http://www.classcloud.org/hadoop4win/WordCount.java -O src/WordCount.java |
| 35 | }}} |
| 36 | * 執行 ant 指令開始編譯,結果會出現在 output.jar ,並且會產生對應的 javadoc 文件在 doc 目錄中。 |
| 37 | {{{ |
| 38 | ~/my-code$ ant |
| 39 | }}} |
| 40 | * 用 Hadoop 執行剛剛產生的 output.jar 當作 MapReduce Job。 |
| 41 | * 註:output.jar 因為'''沒有設定 manifest '''所以'''必須指定要跑的 Main Class 名稱''' |
| 42 | {{{ |
| 43 | ~/my-code$ /opt/hadoop/bin/hadoop jar output.jar WordCount input my-output |
| 44 | }}} |
| 45 | |
| 46 | == 備註 == |
| 47 | |
| 48 | * 如果您要編譯自己的程式碼,可以使用 cygstart 指令,它會用檔案系統開啟目前工作目錄 |
| 49 | |
| 50 | {{{ |
| 51 | ~/my-code$ cygstart . |
| 52 | }}} |
| 53 | * 請將 *.java 程式碼放在 src 子目錄中 |
| 54 | * 回到 Cygwin 命令列,執行 ant 進行編譯,然後用上述的步驟執行 output.jar 檔 |
| 55 | {{{ |
| 56 | ~/my-code$ ant |
| 57 | ~/my-code$ /opt/hadoop/bin/hadoop jar output.jar 您的程式碼主類別 參數1 參數2 |
| 58 | }}} |