映射器输出密钥是否可以路由到 Hadoop MR 中的特定节点



我需要在 MR 中处理一些数据,并将其加载到与我的 MR 节点位于同一物理机器上的外部系统中。现在,我运行作业并从HDFS读取输出,并将单个记录重新路由回所需的节点。

是否可以定义一些映射,以便具有键 X 的记录始终直接转到所需的节点 Y?简而言之,我想控制 hadoop 路由排序后的分区组的位置。

不容易。 我知道影响数据块物理位置的唯一方法是实现自定义BlockPlacementPolicy。 我只是为您的用例抛出一些想法。

  • 自定义BlockPlacementPolicy可以根据文件名路由块
  • 分区的文件名可以使用MapReduce中的MultipleOutputs进行修改
  • 可以使用自定义Partitioner将密钥路由到特定分区

看起来你可以得到你想要的结果,但它不会很漂亮。

最新更新