| | 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 | }}} |