wiki:III140503/Lab7

Version 2 (modified by jazz, 8 years ago) (diff)

--

◢ <實作六> | <回課程大綱> ▲ | <實作八> ◣

實作七 Lab 7

在 Hadoop4Win 環境下編譯 MapReduce 程式
Compiling Hadoop MapReduce Java Program in Hadoop4Win
以下練習,請在本機的 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