[[PageOutline]]
◢ <[wiki:III131207/Lab6 實作六]> | <[wiki:III131207 回課程大綱]> ▲ | <[wiki:III131207/Lab8 實作八]> ◣
= 實作七 Lab 7 =
{{{
#!html
在 Hadoop4Win 環境下編譯 MapReduce 程式
Compiling Hadoop MapReduce Java Program in Hadoop4Win
}}}
{{{
#!text
以下練習,請在本機的 Hadoop4Win 環境操作。
}}}
== 練習一 : 字數統計(基礎篇) ==
== Practice 1 : Word Count (Basic) ==
* 首先請回到家目錄,建立一個程式專案的目錄,假設取名為 my-code
{{{
~$ cd
~$ mkdir my-code
~$ cd my-code
}}}
* 接著,建立一個目錄 src 用來存放 Java 原始碼。並且下載 build.xml 到 my-code 目錄中。
{{{
~/my-code$ mkdir -p src
~/my-code$ wget http://www.classcloud.org/hadoop4win/build.xml
}}}
* 然後將您要編譯的 Java 原始碼置於 src 目錄中(開啟檔案總管,存到 c:\hadoop4win\home\${user}\my-code\src)
* 這裡我們提供一個 WordCount.java 作為示範。
{{{
~/my-code$ wget http://www.classcloud.org/hadoop4win/WordCount.java -O src/WordCount.java
}}}
* 執行 ant 指令開始編譯,結果會出現在 output.jar ,並且會產生對應的 javadoc 文件在 doc 目錄中。
{{{
~/my-code$ ant
}}}
* 用 Hadoop 執行剛剛產生的 output.jar 當作 MapReduce Job。
* 註:output.jar 因為'''沒有設定 manifest '''所以'''必須指定要跑的 Main Class 名稱'''
{{{
~/my-code$ /opt/hadoop/bin/hadoop jar output.jar WordCount input my-output
}}}
== 備註 ==
* 如果您要編譯自己的程式碼,可以使用 cygstart 指令,它會用檔案系統開啟目前工作目錄
{{{
~/my-code$ cygstart .
}}}
* 請將 *.java 程式碼放在 src 子目錄中
* 回到 Cygwin 命令列,執行 ant 進行編譯,然後用上述的步驟執行 output.jar 檔
{{{
~/my-code$ ant
~/my-code$ /opt/hadoop/bin/hadoop jar output.jar 您的程式碼主類別 參數1 參數2
}}}