zoukankan      html  css  js  c++  java
  • hadoop输出lzo文件并添加索引

    public static void main(String[] args) throws Exception {
            Configuration conf = new Configuration();
    
            conf.set("mapred.job.tracker", Constants.HADOOP_MAIN_IP + Constants.MAO_HAO + Constants.HADOOP_MAIN_PORT);
    
            if (args.length != 3) {
                System.err.println("Usage: Data Deduplication <in> <out> <reduceNum>");
                System.exit(2);
            }
            Job job = new Job(conf, "ETLTld Job");
            job.setJarByClass(ETLTldMain.class);
    
            job.setMapperClass(ETLTldMapper.class);
            job.setReducerClass(ETLTldReducer.class);
    
            job.setInputFormatClass(LzoTextInputFormat.class);
    
            job.setNumReduceTasks(Integer.parseInt(args[2]));
    
            job.setOutputKeyClass(Text.class);
            job.setOutputValueClass(Text.class);
    
            FileInputFormat.addInputPath(job, new Path(args[0]));
            FileOutputFormat.setOutputPath(job, new Path(args[1]));
    
            FileOutputFormat.setCompressOutput(job, true);
            FileOutputFormat.setOutputCompressorClass(job, LzopCodec.class);
            int result = job.waitForCompletion(true) ? 0 : 1;
    
            if (result == 0) {
                LzoIndexer lzoIndexer = new LzoIndexer(conf);
                lzoIndexer.index(new Path(args[1]));
                System.exit(result);
            } else if(result == 1){
                System.exit(result);
            }
    
        }

    如果已经有了lzo文件,可以采用如下方法添加索引:

    bin/yarn jar /module/cloudera/parcels/GPLEXTRAS-5.4.0-1.cdh5.4.0.p0.27/lib/hadoop/lib/hadoop-lzo-0.4.15-cdh5.4.0.jar com.hadoop.compression.lzo.DistributedLzoIndexer /user/hive/warehouse/cndns.db/ods_cndns_log/dt=20160803/node=alicn/part-r-00000.lzo

    lzo格式默认是不支持splitable的,需要为其添加索引文件,才能支持多个map并行对lzo文件进行处理。

    【参考】http://blog.csdn.net/wisgood/article/details/17080361

  • 相关阅读:
    关于MOTO E2
    Visual Studio 2008 SDK 1.1 Beta 发布
    开始了新的工作
    C# 2.0 的"语法多义性"
    最近画的框架草图
    SQL数据库向ORACLE迁移注意事项
    C#中很多新的特性,提供了更好的“即兴编程”的能力。
    看了点lua相关的东西,有点想法不知能否实现?先记下来慢慢思考。
    读《企业应用架框模式》
    porting cinvoke1.0 to E2 (armlinux)
  • 原文地址:https://www.cnblogs.com/zhzhang/p/5773473.html
Copyright © 2011-2022 走看看