hadoop详解(九) mapreduce中的压缩

作为输入

当压缩文件做为mapreduce的输入时,mapreduce将自动通过扩展名找到相应的codec对其解压 。

作为输出

当mapreduce的输出文件需要压缩时,可以更改mapred.output.compress为true, mapped.output.compression.codec为想要使用的codec的类名就

可以了,当然你可以在代码中指定,通过 调用FileOutputFormat的静态方法去设置这两个属性,我们来看代码:

package 

com.sweetop.styhadoop;  

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.compress.GzipCodec;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;  

import java.io.IOException;  

/**
 * Created with IntelliJ IDEA.
 * User: lastsweetop
 * Date: 13-6-27
 * Time: 下午7:48
 * To change this template use File | Settings | File Templates.
 */
public class MaxTemperatureWithCompression {
    public static void main(String[] args) throws Exception {
        if (args.length!=2){
            System.out.println("Usage: MaxTemperature <input path> <out path>");
            System.exit(-1);
        }
        Job job=new Job();
        job.setJarByClass(MaxTemperature.class);
        job.setJobName("Max Temperature");  

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));  

        job.setMapperClass(MaxTemperatrueMapper.class);
        job.setCombinerClass(MaxTemperatureReducer.class);
        job.setReducerClass(MaxTemperatureReducer.class);  

        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);  

        FileOutputFormat.setCompressOutput(job, true);
        FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);  

        System.exit(job.waitForCompletion(true)?0:1);  

    }
}

输入也是一个压缩文件

~/hadoop/bin/hadoop com.sweetop.styhadoop.MaxTemperatureWithCompression   input/data.gz  output/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索hadoop
, class
, mapreduce
, apache
, mapreduce多路径输出
, job
, import
, hadoop mapreduce
, hadoop mapreduce
, hadoop job
, mapreduc
, 源代码mapreduce
, 代码 MapReduce
job属性
hadoop mapreduce详解、hadoop mapreduce、hadoop mapreduce原理、hadoop mapreduce实例、hadoop2 mapreduce,以便于您获取更多的相关知识。

时间: 2024-08-03 21:55:32

hadoop详解(九) mapreduce中的压缩的相关文章

Masonry自动布局详解九:scrollview实战场景

Masonry自动布局详解九:scrollview实战场景 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万大量代码的冗余,对维护和开发的效率都很低. 笔者在这里介绍纯代码自动布局的第三方库:Masonry.这个库使用率相当高,在全世界都有大量的开发者在使用,其star数量也是相当高的. 支持原创,请阅读原文 提示 在ios 6.0上不能给tablev

ip-《TCP/IP 详解卷一》中90页中讲到,“由于子网号不相同,代理ARP不能使用”,这怎么理解?

问题描述 <TCP/IP 详解卷一>中90页中讲到,"由于子网号不相同,代理ARP不能使用",这怎么理解? <TCP/IP 详解卷一>中90页中讲到,"由于子网号不相同,代理ARP不能使用",这怎么理解? 解决方案 ARP主要用在一个子网中,用MAC地址来通信.数据链路层 不同子网,需要通过三层路由 解决方案二: 比如 N1 <-> GW <-> N2,N1和N2是同一个子网,GW上开启arp代理的效果是,N1和N2上

CSS标签语法:详解选择符中的关系选择符

文章简介:CSS标签语法:详解选择符中的关系选择符. 相信大家都对CSS选择符都不陌生,选择符包含:元素选择符.关系选择符.属性选择符.伪类选择符.伪对象选择符.在众多的选择符中,可以让我们根据自己的需要更加灵活性的选择合适的选择符来对样式进行编写,达到最大的质量和效率. 今天就为大家介绍下选择符中的关系选择符,"关系"这可是一等一的大事啊,我们得理清楚,这样做事情才能更加的有效率.不然在CSS中有你受的,哈哈.关系选择符有四个类别:包含选择符.子选择符.相邻选择符.兄弟选择符.接下来

PS详解转手绘中头发绘制

教程向朋友们介绍PS详解转手绘中头发绘制.头发的绘制是转手绘中最难的部分.质感亮丽的发丝会给人物增加不少亮点.不过要画出有层次感的发丝还是要花费一定功夫的.需要用钢笔分别勾出不同的路径来描边,逐步做出粗细不等,颜色浅深的发丝.最终效果   原图 下面是具体教程: 1.为了节省大家的时间,素材图片已经处理好了.只是去掉了头发,需要自己加上去. 2.用钢笔工具沿着原图勾出头发的轮廓. 分类: PS鼠绘教程 转手绘教程

详解Linux系统中md5sum命令的用法

  这篇文章主要介绍了详解Linux系统中md5sum命令的用法,用来处理MD5验证的相关操作,需要的朋友可以参考下 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的"指纹"(或称"报文摘要"),不同的文件产生相 同的报文摘要的可能性是非常非常之小的. 在linux或Unix上,

Photoshop详解转手绘中的人像嘴唇绘制过程

  本教程主要使用Photoshop详解转手绘中的人像嘴唇绘制过程,最终的效果光泽动人,非常的漂亮,喜欢的朋友一起来学习吧. 效果图: 1.先铺色,这里用喷枪 2.用白色或者肤色,把靠近嘴角的地方颜色弄淡.就是中间线一点,向外扩散. 3.勾口裂线.用深线色,淡淡的先勾一下,不要一整条都一样深,要有变化. 4.同色.用细一号的笔加重嘴角,中间,同样也是不要一整条的画过来,不然会显得很死板,另外就是这是一个微张的嘴,所以里面的牙也要稍微的勾画一下. 5.嘴唇不是一个平面,是一个弧形,所以越靠近口裂线

详解iOS App中UITableView的创建与内容刷新_IOS

UITableView几乎是iOS开发中用处最广的一个控件,当然也是要记相当多东西的一个控件. 创建首先创建一个新的项目,并添加一个MainViewController的Class文件 打开MainViewController.h文件 @interface MainViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> @property (nonatomic, retain) NSArray *

详解Java编程中的策略模式_java

策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理.策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类.用一句话来说,就是:"准备一组算法,并将每一个算法封装起来,使得它们可以互换".下面就以一个示意性的实现讲解策略模式实例的结构. 这个

详解Java编程中的反射在Android开发中的应用_Android

反射定义 "反射"(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为.为何需要反射 反射带来的好处包括:     在运行时检测对象的类型.     动态构造某个类的对象.     检测类的属性和方法.     任意调用对象的方法.     修改构造函数.方法.属性的可见性. 反射方法Method getDeclaredMethod方法 声明如下: public Method getDeclaredMethod(String name, Class<?>