| 38 | 4. 結論: |
| 39 | 此方法需要重新改寫原本有的程式碼如EchoOhce.java的架構 |
| 40 | |
| 41 | (i)的另解:'''用 hadoop-streaming.jar 可達到多種程式語言的mapReduce (以php舉例)''' |
| 42 | 此為參考[http://www.hadoop.tw/2008/09/php-hadoop.html Hadoop Taiwan User Group] |
| 43 | 1. apt-get install php5-cli |
| 44 | 2. 將mapper.php 與 reducer.php 的程式內容填入並改權限755 |
| 45 | 3. 可以使用以下指令測試程式是否能動: |
| 46 | {{{ |
| 47 | $ echo "i love hadoop, hadoop love u" | ./mapper.php | ./reducer.php |
| 48 | }}} |
| 49 | 4. 將input 的內容上傳到hdfs |
| 50 | {{{ |
| 51 | $ bin/hadoop dfs -put input input |
| 52 | }}} |
| 53 | 5. 執行hadoop stream指令 |
| 54 | 務必注意除了input、ouput可以不用給絕對路徑之外,其他參數都需要給絕對路徑,否則會出錯 |
| 55 | {{{ |
| 56 | $ hadoop jar /opt/hadoop-streaming.jar -mapper /opt/mapper.php -reducer /opt/reducer.php -input input -output out |
| 57 | }}} |
| 58 | 6. 結論:此方法較為方便,也可以不用改之前的code,將mapper.php與reducer.php改成之前編譯出來的java class檔即可(已測試若為內部類別則失敗) |