设为首页 加入收藏

TOP

MapReduce编程实战(一)
2014-11-23 23:57:05 来源: 作者: 【 】 浏览:24
Tags:MapReduce 编程 实战

MapReduce编程模型,就是Hadoop生态环境进行数据分析处理的固定的编程形式。


这种固定的编程形式描述如下:


MapReduce任务过程被分为两个阶段:map阶段和reduce阶段。每个阶段都以键/值对作为输入和输出,并由程序员选择他们的类型。


也就是说,程序员只需要定义两个函数:map函数和reduce函数就好了,其他的计算过程交给hadoop就好了。


通过以上描述,我们可以看出:


MapReduce所能处理的场景实际是非常具体的,非常有限的,只是“数据的统计分析”场景。


天气预报官方网址:ftp://ftp.ncdc.noaa.gov/pub/data/gsod/


https://github.com/tomwhite/hadoop-book/tree/master/input/ncdc/all


如果简单测试,也可以把下面这几行粘贴到一个文本文件也行,这就是正确的天气文件:


0035029070999991902010113004+64333+023450FM-12+000599999V0201401N011819999999N0000001N9-01001+99999100311ADDGF104991999999999999999999MW1381
0035029070999991902010120004+64333+023450FM-12+000599999V0201401N013919999999N0000001N9-01171+99999100121ADDGF108991999999999999999999MW1381
0035029070999991902010206004+64333+023450FM-12+000599999V0200901N009819999999N0000001N9-01611+99999100121ADDGF108991999999999999999999MW1381
0029029070999991902010213004+64333+023450FM-12+000599999V0200901N011819999999N0000001N9-01721+99999100121ADDGF108991999999999999999999
0029029070999991902010220004+64333+023450FM-12+000599999V0200901N009819999999N0000001N9-01781+99999100421ADDGF108991999999999999999999


本文中,我们把存储天气格式的文本文件命名为:temperature.txt




有两套JavaAPI,旧的是org.apache.hadoop.mapred包,MapReduce编程是使用实现接口的方式;新的是org.apache.hadoop.marreduce包,MapReduce编程是使用继承抽象基类的方式;其实都差不多,下面都会有显示。




org.apache.hadoop
hadoop-core
1.0.4


也可以不用官方的,用别人修改重新编译过的,可以直接在Eclipse里面像运行普通Java程序一样运行MapReduce。


编译过的hadoop-core-1.0.4.jar,可以在本地模拟MapReduce


如果Eclipse workspace在d:,则我们可以把d:的某个目录,比如d:\input作为输入目录;d:\output作为输出目录。


MapReduce编程模型里面这样写就可以了:


FileInputFormat.setInputPaths(job, new Path("/input"));


FileOutputFormat.setOutputPath(job, new Path("/output"));


下载地址:


具体下载目录在 /2014年资料/4月/16日/MapReduce编程实战


----------------------------------------------------------------------------


或者:


------------------------------------------分割线------------------------------------------


在 2014年LinuxIDC.com\4月\MapReduce编程实战


------------------------------------------分割线------------------------------------------


下载后,直接覆盖maven资源库位置的文件即可。


import java.io.IOException;
import java.util.Iterator;


import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.FileInputFormat;
import org.apache.hadoop.mapred.FileOutputFormat;
import org.apache.hadoop.mapred.JobClient;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.mapred.MapReduceBase;
import org.apache.hadoop.mapred.Mapper;
import org.apache.hadoop.mapred.OutputCollector;
import org.apache.hadoop.mapred.Reducer;
import org.apache.hadoop.mapred.Reporter;


public class MaxTemperature {


public static void main(String[] args) throws Exception {
JobConf conf = new JobConf(MaxTemperature.class);
conf.setJobName("Max Temperature");


// FileInputFormat.addInputPaths(conf, new Path(args[0]));
// FileOutputFormat.setOutputPath(conf, new Path(args[1]));


FileInputFormat.setInputPaths(conf, new Path("/hadooptemp/input/2"));
FileOutputFormat.setOutputPath(conf, new Path("/hadooptemp/output"));


conf.setMapperClass(MaxTemperatureMapper.class);
conf.setReducerClass

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言中字符串结束符探究 下一篇Ruby解析XML文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: