Changes between Version 1 and Version 2 of adanalytics
- Timestamp:
- 11/27/2012 11:10:00 AM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
adanalytics
v1 v2 1 开发的时候发现HBASE使用的一个问题 1 比较完整的Hadoop应用jar包,包括入口程序,任务和帮助类3部分就够了 2 2 3 1. 我们在项目的包的顶级放一个入口程序[[BR]] 4 如 cn.pconline.ad.analytics3.Analyser,入口程序里面有一个ProgramDriver,把任务类加在里面就可以通过命令'' hadoop jar Analyser3.0.jar SumPvClick'' 执行 3 5 4 6 {{{ 5 byte[][] qualifiers = new byte[][]{Bytes.toBytes("apns"), Bytes.toBytes("receive_type"), Bytes.toBytes("receiv 6 e_time")}; 7 Scan scan = new Scan(); 8 scan.setCaching(100); 9 scan.setMaxVersions(1); 10 FilterList filters = new FilterList(); 7 public static void main(String argv[]) throws Exception { 8 int exitCode = -1; 9 ProgramDriver pgd = new ProgramDriver(); 10 try { 11 11 12 RowFilter rowfilter = new RowFilter(CompareOp.EQUAL, new BinaryPrefixComparator(new String(3 + "_").getBytes() 13 )); 14 filters.addFilter(rowfilter); 12 pgd.addClass("CombineADRawFile", CombineADRawFile.class, ""); 13 pgd.addClass("SumPvClick", SumPvClick.class, ""); 15 14 16 SingleColumnValueFilter filter = new SingleColumnValueFilter( 17 Bytes.toBytes("base"), 18 "app_ver_int".getBytes(), 19 CompareOp.EQUAL, 20 Bytes.toBytes(3020000)); 21 filters.addFilter(filter); 22 23 for (int i = 0; i < qualifiers.length; i++) { 24 scan.addColumn(Bytes.toBytes("base"), qualifiers[i]); 25 } 26 // filters.addFilter(new FirstKeyOnlyFilter()); 27 28 scan.setFilter(filters); 29 ResultScanner scanner = hTable.getScanner(scan); 30 15 .... 31 16 }}} 32 17 33 出现问题,由于filter里面的字段在addColumn的时候是没用的,filter就失效了 18 2. hadoop任务是程序包的核心,借用网上两张图说明一下map和reduce的流程[[BR]] 19 我们的做法是写一个实现Tool接口的基类,其他的任务继承这个基类,有些公共的方法就不用每个重复 20 {{{ 21 public abstract class JobBase implements Tool 22 }}} 23 24 每个任务的核心是map和reduce,有些类可以使用系统现有的,有些可以项目公用,不过更多的需要每个job里面自己定制,借网上的两张图说明一下map和reduce的流程
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)