|   | 1 | {{{ | 
                  
                          |   | 2 | #!html | 
                  
                          |   | 3 | <div style="text-align: center; color:#151B8D"><big style="font-weight: bold;"><big><big> | 
                  
                          |   | 4 | Hadoop 進階課程  | 
                  
                          |   | 5 | </big></big></big></div> <div style="text-align: center; color:#7E2217"><big style="font-weight: bold;"><big> | 
                  
                          |   | 6 | 範例練習 | 
                  
                          |   | 7 | </big></big></div> | 
                  
                          |   | 8 | }}} | 
                  
                          |   | 9 |  | 
                  
                          |   | 10 | [wiki:NCHCCloudCourse100928_4_EXM6 上一關 < ] 最後一關 [wiki:NCHCCloudCourse100928 >> 回課程大綱] | 
                  
                          |   | 11 |  | 
                  
                          |   | 12 | = Ex1.   = | 
                  
                          |   | 13 |  | 
                  
                          |   | 14 | {{{ | 
                  
                          |   | 15 | #!java | 
                  
                          |   | 16 | package org.nchc.hadoop; | 
                  
                          |   | 17 |  | 
                  
                          |   | 18 | import org.apache.hadoop.util.ProgramDriver; | 
                  
                          |   | 19 |  | 
                  
                          |   | 20 |  | 
                  
                          |   | 21 |  | 
                  
                          |   | 22 | //YourMenu | 
                  
                          |   | 23 | //說明:  | 
                  
                          |   | 24 | //      將之前的功能整合起來 | 
                  
                          |   | 25 | // | 
                  
                          |   | 26 | //測試方法: | 
                  
                          |   | 27 | //      將此程式運作在hadoop 0.20 平台上,執行: | 
                  
                          |   | 28 | //      --------------------------- | 
                  
                          |   | 29 | //      hadoop jar YourMenu.jar <功能> | 
                  
                          |   | 30 | //      --------------------------- | 
                  
                          |   | 31 | // | 
                  
                          |   | 32 | //注意: | 
                  
                          |   | 33 | //1. 此程式需與之前的範例一起打包成一個YourExam.jar檔 | 
                  
                          |   | 34 |  | 
                  
                          |   | 35 |  | 
                  
                          |   | 36 | public class YourMenu { | 
                  
                          |   | 37 |  | 
                  
                          |   | 38 |  | 
                  
                          |   | 39 |         public static void main(String argv[]) { | 
                  
                          |   | 40 |                 int exitCode = -1; | 
                  
                          |   | 41 |                 ProgramDriver pgd = new ProgramDriver(); | 
                  
                          |   | 42 |                 if (argv.length < 1) { | 
                  
                          |   | 43 |                         System.out.print("******************************************\n" | 
                  
                          |   | 44 |                                         + "歡迎使用 YourMenu 的運算功能 \n" + "指令: \n" | 
                  
                          |   | 45 |                                         + "  Hadoop jar YourExam.jar <功能> \n" + "功能:\n" | 
                  
                          |   | 46 |                                         + "  HelloHadoop:  秀出Hadoop的<Key,Value>為何 \n" | 
                  
                          |   | 47 |                                         + "  HelloHadoopV2:  秀出Hadoop的<Key,Value> 進階版 \n" | 
                  
                          |   | 48 |                                         + "  HelloHadoopV3:  秀出Hadoop的<Key,Value> 進化版 \n" | 
                  
                          |   | 49 |                                         + "  WordCount:  計算輸入資料夾內分別在每個檔案的字數統計 \n" | 
                  
                          |   | 50 |                                         + "  WordCountV2:  WordCount 進階版 \n" | 
                  
                          |   | 51 |                                         + "  WordIndex:  索引每個字與其所有出現的所在列 \n" | 
                  
                          |   | 52 |                                         + "******************************************\n"); | 
                  
                          |   | 53 |                 } else { | 
                  
                          |   | 54 |  | 
                  
                          |   | 55 |                         try { | 
                  
                          |   | 56 |                                 pgd.addClass("HelloHadoop", HelloHadoop.class, " Hadoop hello world"); | 
                  
                          |   | 57 |                                 pgd.addClass("HelloHadoopV2", HelloHadoopV2.class, " Hadoop hello world V2"); | 
                  
                          |   | 58 |                                 pgd.addClass("HelloHadoopV3", HelloHadoopV3.class, " Hadoop hello world V3"); | 
                  
                          |   | 59 |                                 pgd.addClass("WordCount", WordCount.class, " word count."); | 
                  
                          |   | 60 |                                 pgd.addClass("WordCountV2", WordCountV2.class, " word count V2."); | 
                  
                          |   | 61 |                                 pgd.addClass("WordIndex", WordIndex.class, "invert each word in line"); | 
                  
                          |   | 62 |                                 pgd.driver(argv); | 
                  
                          |   | 63 |                                 // Success | 
                  
                          |   | 64 |                                 exitCode = 0; | 
                  
                          |   | 65 |                                 System.exit(exitCode); | 
                  
                          |   | 66 |                         } catch (Throwable e) { | 
                  
                          |   | 67 |                                 e.printStackTrace(); | 
                  
                          |   | 68 |                         } | 
                  
                          |   | 69 |                 } | 
                  
                          |   | 70 |  | 
                  
                          |   | 71 |         } | 
                  
                          |   | 72 | } | 
                  
                          |   | 73 |  | 
                  
                          |   | 74 | }}} | 
                  
                          |   | 75 |  | 
                  
                          |   | 76 |  |