package org.openflamingo.mapreduce.etl; import org.apache.hadoop.util.ProgramDriver; import org.openflamingo.mapreduce.core.Constants; import org.openflamingo.mapreduce.etl.accounting.AccountingDriver; import org.openflamingo.mapreduce.etl.aggregate.AggregateDriver; import org.openflamingo.mapreduce.etl.clean.CleanDriver; import org.openflamingo.mapreduce.etl.filter.FilterDriver; import org.openflamingo.mapreduce.etl.generate.GenerateKeyDriver; import org.openflamingo.mapreduce.etl.grep.GrepDriver; import org.openflamingo.mapreduce.etl.groupby.GroupByDriver; import org.openflamingo.mapreduce.etl.rank.RankDriver; import org.openflamingo.mapreduce.etl.replace.column.ReplaceColumnDriver; import org.openflamingo.mapreduce.etl.replace.delimiter.ReplaceDelimiterDriver; /** * 모든 MapReduce를 실행하기 위한 Alias를 제공하는 Program Driver. * * @author Edward KIM * @author Seo Ji Hye * @since 0.1 */ public class MapReduceDriver { public static void main(String argv[]) { ProgramDriver programDriver = new ProgramDriver(); try { programDriver.addClass("aggregate", AggregateDriver.class, "하나 이상의 파일을 합치는 MapReduce ETL"); programDriver.addClass("clean", CleanDriver.class, "지정한 컬럼을 삭제하는 MapReduce ETL"); programDriver.addClass("grep", GrepDriver.class, "파일의 ROW를 RegEx로 Grep하는 MapReduce ETL"); programDriver.addClass("filter", FilterDriver.class, "파일의 특정 컬럼을 필터링 조건에 따라 필터링하는 MapReduce ETL"); programDriver.addClass("replace_delimiter", ReplaceDelimiterDriver.class, "컬럼 구분자를 일괄 변경하는 MapReduce ETL"); programDriver.addClass("replace_column", ReplaceColumnDriver.class, "컬럼 구분자를 일괄 변경하는 MapReduce ETL"); programDriver.addClass("groupby", GroupByDriver.class, "지정한 Key를 기준으로 Value를 취합하는 MapReduce ETL"); programDriver.addClass("generate", GenerateKeyDriver.class, "특정 COLUMN을 기준으로 SEQUENCE NUMBER를 생성하는 MapReduce ETL"); programDriver.addClass("rank", RankDriver.class, "특정 COLUMN을 기준으로 순위를 정하는 MapReduce ETL(Top K기능 옵션)"); programDriver.addClass("accounting", AccountingDriver.class, "사용자가 정의한 수식을 이용하여 컬럼별 계산을 할 수 있는 MapReduce ETL"); programDriver.driver(argv); System.exit(Constants.JOB_SUCCESS); } catch (Throwable e) { e.printStackTrace(); System.exit(Constants.JOB_FAIL); } } }