Hadoop MapReduce进阶 使用Chain

情况:在进行高级的数据处理时,你会发现你的程序不能放在一个的MapReduce job之中了。Hadoop支持将多个MapReduce Job串成一条链来形成一个更大的MapReduce Job。同时你会发现Hadoop数据处理过程中通常包括多个数据源,我们将探索一些join技术同时处理多个数据源。

1.将具有复杂依赖关系的多个MapReduce Job串联起来。

情况:有三个Job,分别成为Job1,Job2,Job3,这三个Job的关系是Job1、Job2可以同时运行,但Job3必须等待Job1、Job2都完成后才能运行。

解决方案:Hadoop提供解决这样复杂依赖关系的类,Job以及JobControl(mapred包内,新API还相当不完善。)

使用Job的addDependingJob()函数来添加依赖关系,例如:Job1.addDependingJob(Job2)表示Job2不完成,Job1则不会开始。

2.串联一个Job之上的预处理和后处理Mapper步骤。

情况:有许多的数据处理工作包括针对一条记录的预处理和后处理,例如进行文档信息检索的时候,我们需要首先去除掉a,the等无太大意义的词汇,然后再转换单词格式(finish,finished等不同格式统一转换为finish)然后再进行处理步骤。

解决方案:Hadoop提供ChainMapper和ChainReducer提供这样的功能。详见《Hadoop in Action》

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值