• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >云计算 > Java MapReduce详解--(3),mapreduce详解

Java MapReduce详解--(3),mapreduce详解

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含java mapreduce,mapreduce详解,node mapreduce,mapreduce,mapreduce原理等服务器相关知识,网友希望可以进行参考

Java MapReduce详解--(3),mapreduce详解


如果Hadoop命令是以类名作为第一个参数,它就会启动一个JVM来运行这个类。使用命令比直接使用Java更方便,因为前者把类的路径(及其依赖关系)加入Hadoop的库中,并获得Hadoop的配置。要添加应用程序类的路径,我们需要定义一个HADOOP_CLASSPATH环境变量,Hadoop脚本会来执行相关操作。

注意:以本地(独立)模式运行时,本书所有程序希望都以这种方式来设置HADOOP_CLA-SSPATH。命令必须在示例代码所在的文件夹下被运行。

运行作业所得到的输出提供了一些有用的信息。(无法找到作业JAR文件的相关信息是意料之中的,因为我们是在本地模式下没有JAR的情况下运行的。在集群上运行时,不会看到此警告。)例如,我们可以看到,这个作业被给予了一个IDjob_local_0001,并且它运行了一个map任务和一个reduce任务(使用attempt_local_0001_m_000000_0和attempt_local_0001_r_000000_0两个ID)。在调试MapReduce作业时,知道作业和任务的ID是非常有用的。

输出的最后一部分叫"计数器"(Counter),显示了在Hadoop上运行的每个作业产生的统计信息。这些对检查处理的数据量是否符合预期非常有用。例如,我们可以遵循整个系统中记录的数目:5个map输入产生了5个map的输出,然后5个reduce输入产生两个reduce输出。

输出被写入output目录,其中每个reducer包括一个输出文件。作业包含一个reducer,所以我们只能找到一个文件,名为part-00000:

1.%catoutput/part-00000

2.1949 111

3.1950 22

这个结果和我们之前手动寻找的结果一样。我们可以把前面这个结果解释为在1949年的最高气温记录为11.1℃,而在1950年为2.2℃。

新的JavaMapreduce API

Hadoop最新版JavaMapReduce Release 0.20.0的API包括一个全新的MapReduce JavaAPI,有时也称为"contextobject"(上下文对象),旨在使API在未来更容易扩展。新的API类型上不兼容以前的API,所以,以前的应用程序需要重写才能使新的API发挥其作用。

新的API和旧的API之间有下面几个明显的区别。

新的API倾向于使用抽象类,而不是接口,因为这更容易扩展。例如,你可以添加一个方法(用默认的实现)到一个抽象类而不需修改类之前的实现方法。在新的API中,Mapper和Reducer是抽象类。

新的API是在org.apache.hadoop.mapreduce包(和子包)中的。之前版本的API则是放在org.apache.hadoop.mapred中的。

新的API广泛使用context object(上下文对象),并允许用户代码与MapReduce系统进行通信。例如,MapContext基本上充当着JobConf的OutputCollector和Reporter的角色。

新的API同时支持"推"和"拉"式的迭代。在这两个新老API中,键/值记录对被推mapper中,但除此之外,新的API允许把记录从map()方法中拉出,这也适用于reducer。"拉"式的一个有用的例子是分批处理记录,而不是一个接一个。

新的API统一了配置。旧的API有一个特殊的JobConf对象用于作业配置,这是一个对于Hadoop通常的Configuration对象的扩展(用于配置守护进程,请参见5.1节)。在新的API中,这种区别没有了,所以作业配置通过Configuration来完成。

作业控制的执行由Job类来负责,而不是JobClient,它在新的API中已经荡然无存。

例2-6使用新API重写了MaxTemperature的代码,不同之处用黑体字突出显示。

例2-6:使用新的context object(上下文对象)MapReduce API在气象数据集中查找最高气温

1.public class NewMaxTemperature {

2.static class NewMaxTemperatureMapper

3.extends Mapper<LongWritable,Text, Text, IntWritable> {

4.

5.private static final int MISSING = 9999;

6.

7.public void map(LongWritable key, Text value,Context context)

8.throws IOException, InterruptedException {

9.

10. String line =value.toString();

11. String year =line.substring(15, 19);

12. int airTemperature;

13. if (line.charAt(87) == '+') { // parseInt doesn't like

14. leading plus signs

15. airTemperature =Integer.parseInt(line.substring(88, 92));

16. } else {

17. airTemperature =Integer.parseInt(line.substring(87, 92));

18. }

19. String quality =line.substring(92, 93);

20. if (airTemperature !=MISSING &&quality.matches("[01459]")){

<

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java MapReduce详解--(3),mapreduce详解

相关文章

  • Web.xml配置详解,web.xml详解
  • Azure云平台学习之路(一)——Azure简介,azure之路
  • 启动hive报错[ERROR] Terminal initialization failed; falling back to unsupported,hiveunsupported
  • Hadoop学习---第三篇Hadoop的第一个Mapreduce程序,hadoopmapreduce
  • hadoop基础知识
  • 现代数学的引路人,现代数学引路人
  • python RESTful API框架:Eve 快速入门,pythonrestful
  • Hadoop学习---第一篇搭建Hadoop集群,---hadoop
  • 玩转OpenStack网络Neutron(4)--网络隧道技术 VXALN &amp; GRE,openstackvxaln
  • Hadoop之—— Linux搭建hadoop环境(简化篇),linuxhadoop

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • hadoop基础知识
    • 在streaming process中为什么需要类似sql查询语言,streamingprocess
    • 观点 | 为什么说云主机比物理机故障率更低?,云主机
    • 超人学院Hadoop大数据资源分享,超人学院hadoop分享
    • vlan trunk and access,vlantrunk
    • 这会不会是顶好的实现万物互联的途径?--设备智能化改造,万物--
    • @PathVariable和@RequestParam的区别,@pathvariable
    • RabbitMQ安全相关的网络资源介绍,rabbitmq安全相关
    • 索引更新,oracle索引更新
    • hive UDF自动增长列函数,hiveudf列函数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有