(转)hadoop编程笔记

FileInputFormat.setMinInputSplitSize(job, 2L * 1024 * 1024 * 1024);
将使得小于 2G 的输入文件不会被分割处理。如果你的输入文件中有很多都是小于2G的,并且你的Hadoop集群配置了一个split的大小是默认的64M,那么就会导致 一个1点几G的文件就会被很多个map处理,从而导致输出文件数量很多。使用上面的方法设置了min input split size之后,减小输出文件数量的效果很明显。

编写WordMapper类
在工程下创建一个WordMapper 类,该类要继承Mapper< Object, Text, Text, IntWritable>抽象类,并且实现如下方法。
public void map(Object key, Text value, Context context ) throws IOException, InterruptedException
这个方法是Mapper 抽象类的核心方法,它有三个参数。
Object key:每行文件的偏移量。
Text value:每行文件的内容。
Context context:Map 端的上下文,与 OutputCollector 和 Reporter 的功能类似。

编写WordReducer 类
在工程下创建一个WordReducer 类,该类要继承Reducer<Text, IntWritable, Text, IntWritable> 抽象类,并且实现如下方法。
public void reduce (Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException
这个方法是Reducer 抽象类的核心方法,它有三个参数。
Text key:Map 端输出的 Key 值。
Iterable<IntWritable> values:Map 端输出的 Value 集合(相同 Key 的集合)。
Context context:Reduce 端的上下文,与 OutputCollector 和 Reporter 的功能类似。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值