| 1 | = 程式驅動 = |
| 2 | |
| 3 | {{{ |
| 4 | #!java |
| 5 | import org.apache.hadoop.util.ProgramDriver; |
| 6 | |
| 7 | //TsmMenu |
| 8 | //說明: |
| 9 | // 將之前的功能整合起來 |
| 10 | // |
| 11 | //測試方法: |
| 12 | // 將此程式運作在hadoop 0.20 平台上,執行: |
| 13 | // --------------------------- |
| 14 | // hadoop jar TsmMenu.jar <功能> |
| 15 | // --------------------------- |
| 16 | // |
| 17 | //注意: |
| 18 | //1. 在hdfs 上來源檔案的路徑為 你所指定的 <input> |
| 19 | //請注意必須先放資料到此hdfs上的資料夾內,且此資料夾內只能放檔案,不可再放資料夾 |
| 20 | //2. 運算完後,程式將執行結果放在hdfs 的輸出路徑為 你所指定的 <output> |
| 21 | |
| 22 | public class TsmMenu { |
| 23 | |
| 24 | |
| 25 | public static void main(String argv[]) { |
| 26 | int exitCode = -1; |
| 27 | ProgramDriver pgd = new ProgramDriver(); |
| 28 | if (argv.length < 1) { |
| 29 | System.out.print("******************************************\n" |
| 30 | + "歡迎使用 TSM 的運算功能 \n" + "指令: \n" |
| 31 | + " Hadoop jar TSM-example-*.jar <功能> \n" + "功能:\n" |
| 32 | + " HelloHadoop: 秀出Hadoop的<Key,Value>為何 \n" |
| 33 | + " HelloHadoopV2: 秀出Hadoop的<Key,Value> 進階版 \n" |
| 34 | + " HelloHadoopV3: 秀出Hadoop的<Key,Value> 進化版 \n" |
| 35 | + " WordCount: 計算輸入資料夾內分別在每個檔案的字數統計 \n" |
| 36 | + " WordCountV2: WordCount 進階版 \n" |
| 37 | + " WordIndex: 索引每個字與其所有出現的所在列 \n" |
| 38 | + "******************************************\n"); |
| 39 | } else { |
| 40 | |
| 41 | try { |
| 42 | pgd.addClass("HelloHadoop", HelloHadoop.class, " Hadoop hello world"); |
| 43 | pgd.addClass("HelloHadoopV2", HelloHadoopV2.class, " Hadoop hello world V2"); |
| 44 | pgd.addClass("HelloHadoopV3", HelloHadoopV3.class, " Hadoop hello world V3"); |
| 45 | pgd.addClass("WordCount", WordCount.class, " word count."); |
| 46 | pgd.addClass("WordCountV2", WordCountV2.class, " word count V2."); |
| 47 | pgd.addClass("WordIndex", WordIndex.class, "invert each word in line"); |
| 48 | pgd.driver(argv); |
| 49 | // Success |
| 50 | exitCode = 0; |
| 51 | System.exit(exitCode); |
| 52 | } catch (Throwable e) { |
| 53 | e.printStackTrace(); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | } |
| 58 | } |
| 59 | }}} |