我需要在mr中处理一些数据,并将其加载到与mr节点位于同一物理机器上的外部系统中。现在,我运行作业并从hdfs读取输出,然后将各个记录重新路由回所需的节点。是否可以定义一些Map,使得带有键x的记录总是直接到达所需的节点y?简单地说,我想控制hadoop在哪里路由经过排序的分区组。
qoefvg9y1#
不容易。我所知道的动态影响数据块物理位置的唯一方法是实现自定义 BlockPlacementPolicy . 我将为您的用例抛出一些想法。习俗 BlockPlacementPolicy 可以基于文件名路由块分区的文件名可以使用 MultipleOutputs 在mapreduce中可以使用自定义的 Partitioner 看起来你能得到你想要的结果,但不会很好。
BlockPlacementPolicy
MultipleOutputs
Partitioner
1条答案
按热度按时间qoefvg9y1#
不容易。我所知道的动态影响数据块物理位置的唯一方法是实现自定义
BlockPlacementPolicy
. 我将为您的用例抛出一些想法。习俗
BlockPlacementPolicy
可以基于文件名路由块分区的文件名可以使用
MultipleOutputs
在mapreduce中可以使用自定义的
Partitioner
看起来你能得到你想要的结果,但不会很好。