2.MapReduce

1.MapReduce是一种可用于数据处理的编程模型,优势在于处理大规模数据集。
2.在MapReduce中分为map和reduce阶段,我们选择文本格式作为输入格式,将数据集的每一行作为文本输入,键是某一行起始位置相对于文件起始位置的偏移量。这里是Mapper类是一个泛化类型,分别指定map的输入键,输入值,输出键和输出值。map(Longwritable key,Text value,Context context)中的Longwritable 表示输入的文本偏移量,Context实例用于输出内容的写入。
3.除了map和reduce阶段外,还包括了负责运行Map Reduce作业。


public class MaxTemperature{
public static void main(String[] args) throws Exception{
if(args.length!=-2){
System.err.println("Usage:MaxTemperature <input path><output 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(MaxTemperatureMapper.class);
job.setReducerClass(MaxTemperatureReduce.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
System.exit(job.waitForCompletion(true)?0:1);
}
}


addInputPath()用来指定输入数据的路径。
setOutputPath()用来指定输出数据的路径。
setMapperClass()和setReducerClass()方法指定要用的map类型和reduce类型。
setOutputKeyClass和setOutputValueClass用来指定reduce函数的输出类型。


4.map函数的输入是HDFS,输出到本地磁盘,reduce的输出是HDFS中。
reduce任务的数量并非由输入数据的大小决定,相反是独立指定的。
combiner函数首先求出map中的局部最优解。
通过如下代码来指定conbiner函数。

job.setCombiner(MaxTemperatureReduce.class);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值