2013-06-26 27 views
2


简而言之我需要一种方法来提供Hadoop MapRedice API提示什么主机上我想运行某个reducer基于其分区。有什么办法吗?有没有什么办法可以在Hadoop MapReduce框架中控制哪个节点减速器启动?

略长的故事:
我有一定的HBase的表,生成几个映射任务(或从其他来源进口)的记录。发出的记录具有ImmutableBytesWritable作为键。此作业的缩减器数量与表区域的数量完全匹配,并使用自定义分区程序分发记录,以便每个区域的记录都可以到达适当的缩减器。

减速器旨在生成HFile图像,每个区域一个图像,以便稍后可以使用批量加载。这里唯一严重的问题是我希望reducer至少在运行相同主机的区域服务器上“尝试运行”。这是为了适当的HBase区域服务器获得生成的HFile局部性(以HDFS而言)的可能性。

任何想法如何得到这种行为?

替代可能是如何“请求” HDFS文件,以“获得当地”。有了这个我可以启动另一个MR作业,通过绑定到区域服务器的映射器(通过分割)并请求相应的HFileget local

回答

1

有外的箱子没有办法做到这一点的是,短编写自定义的调度,这将是矫枉过正。

上游票证确实在https://issues.apache.org/jira/browse/MAPREDUCE-199处跟踪此功能请求。

+0

它有像'进行中'的状态。好,接受最好的帮助。 –

相关问题