gpt4 book ai didi

java - Hadoop - 通过套接字在 reducer 之间共享数据

转载 作者:行者123 更新时间:2023-12-02 21:52:29 26 4
gpt4 key购买 nike

我正在开发一个 Java MapReduce 程序,我想知道是否可以使用套接字或任何其他方式在 reducer 之间共享数据。如果是通过sockets,如何获取某个key的reducer操作机器的ip地址和端口号?

提前致谢 :)

最佳答案

您可以通过您自己的自定义套接字进行通信,并找到正在运行特定键的 reducer 的特定主机,您可以使用 JobClient API 查询作业跟踪器以获取正在运行的作业 reducer 列表。

要找到 reducer 主机,请通过作业 Partitioner 运行 key (大多数情况下为哈希),确定 reducer 任务编号(0 到 num reducers-1),然后找到运行 reducer 任务的机器(从 JOb Tracker 获取通过 JobClient API)。

不过有些事情需要考虑:

  • 如果你的所有 reducer 不能全部并行运行(reducer 多于 reducer 插槽,或者另一个作业同时运行),会发生什么?
  • 如果作业跟踪器安排两个或多个 reducer 在同一个任务节点上运行,您将如何分配端口号以确保它们都不会尝试监听相同的编号(我想您应该选择一个基本端口号,例如 21000,然后每个reducer将监听一个端口号是那个加上reducer号的端口)。如果该端口已被另一个进程使用会怎样?
  • 关于java - Hadoop - 通过套接字在 reducer 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070088/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com