wiki:waue/2010/0115-program-drive

Version 2 (modified by waue, 14 years ago) (diff)

--

程式驅動

import org.apache.hadoop.util.ProgramDriver;

//TsmMenu
//說明: 
//	將之前的功能整合起來
//
//測試方法:
//	將此程式運作在hadoop 0.20 平台上,執行:
//	---------------------------
//	hadoop jar NCHCMenu.jar <功能>
//	---------------------------
//
//注意:
//1. 此程式需與之前的範例一起打包成一個TsmMenu.jar檔


public class NCHCMenu {


	public static void main(String argv[]) {
		int exitCode = -1;
		ProgramDriver pgd = new ProgramDriver();
		if (argv.length < 1) {
			System.out.print("******************************************\n"
					+ "歡迎使用 NCHC Class 的運算功能 \n" + "指令: \n"
					+ "  Hadoop jar TSM-example-*.jar <功能> \n" + "功能:\n"
					+ "  HelloHadoop:  秀出Hadoop的<Key,Value>為何 \n"
					+ "  HelloHadoopV2:  秀出Hadoop的<Key,Value> 進階版 \n"
					+ "  HelloHadoopV3:  秀出Hadoop的<Key,Value> 進化版 \n"
					+ "  WordCount:  計算輸入資料夾內分別在每個檔案的字數統計 \n"
					+ "  WordCountV2:  WordCount 進階版 \n"
					+ "  WordIndex:  索引每個字與其所有出現的所在列 \n"
					+ "******************************************\n");
		} else {

			try {
				pgd.addClass("HelloHadoop", HelloHadoop.class, " Hadoop hello world");
				pgd.addClass("HelloHadoopV2", HelloHadoopV2.class, " Hadoop hello world V2");
				pgd.addClass("HelloHadoopV3", HelloHadoopV3.class, " Hadoop hello world V3");
				pgd.addClass("WordCount", WordCount.class, " word count.");
				pgd.addClass("WordCountV2", WordCountV2.class, " word count V2.");
				pgd.addClass("WordIndex", WordIndex.class, "invert each word in line");
				pgd.driver(argv);
				// Success
				exitCode = 0;
				System.exit(exitCode);
			} catch (Throwable e) {
				e.printStackTrace();
			}
		}

	}
}