Changes between Version 1 and Version 2 of adanalytics


Ignore:
Timestamp:
11/27/2012 11:10:00 AM (13 years ago)
Author:
liaojiaohe
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • adanalytics

    v1 v2  
    1 开发的时候发现HBASE使用的一个问题 
     1比较完整的Hadoop应用jar包,包括入口程序,任务和帮助类3部分就够了 
    22 
     31. 我们在项目的包的顶级放一个入口程序[[BR]] 
     4如 cn.pconline.ad.analytics3.Analyser,入口程序里面有一个ProgramDriver,把任务类加在里面就可以通过命令'' hadoop jar Analyser3.0.jar SumPvClick'' 执行 
    35 
    46{{{ 
    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 { 
    1111 
    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, ""); 
    1514 
    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          .... 
    3116}}} 
    3217 
    33 出现问题,由于filter里面的字段在addColumn的时候是没用的,filter就失效了 
     182. hadoop任务是程序包的核心,借用网上两张图说明一下map和reduce的流程[[BR]] 
     19我们的做法是写一个实现Tool接口的基类,其他的任务继承这个基类,有些公共的方法就不用每个重复 
     20{{{ 
     21public abstract class JobBase implements Tool 
     22}}} 
     23 
     24每个任务的核心是map和reduce,有些类可以使用系统现有的,有些可以项目公用,不过更多的需要每个job里面自己定制,借网上的两张图说明一下map和reduce的流程