MapReduce的工作流

如何将数据处理问题转化为MapReduce模型

数据处理问题更复杂,通常是因为有更多的MapReduce作业,而不是更复杂的map函数和reduce函数,换而言之,通常是增加更多的作业,而不是增加作业的复杂度。对于更复杂的问题,可考虑比MapReduce更高级的语言,例如Pig、hive、Spark等,有了他们之后,就不用处理到MapReduce作业的转换,而是集中精力分析正在执行的任务。

一个作业可以包含多个(简单的)MapReduce步骤,这样整个作业由多个可分解可维护的mapper和reducer组成。具体看书的第四部分,即介绍一些在Hadoop上构建的项目部分。

mapper和reducer可以进一步分解,mapper 一般执行输入格式解析、投影(选择相关的字段)和过滤(去掉无关记录),还可以将这些功能分割到不同的mapper中,然后使用Hadoop自带的ChainMapper类库将它们连接成一个mapper,结合使用ChainReducer,可以在一个MapReduce作业中运行一系列的mapper,再运行一个reducer和另一个mapper链。

关于JobControl

当MapReduce工作流的作业不止一个时,如何管理这些作业按顺序执行,主要考虑是否有一个线性的作业链或一个更复杂的作业有向无环图(DAG)。

猜你喜欢

转载自blog.csdn.net/Saikikky/article/details/84618584
今日推荐