python 多处理是否与 Hadoop 流一起工作?

Does python multiprocessing work with Hadoop streaming?

在 Hadoop 流中 - Mapper 和 Reducer 是在 python 中编写的 - 让 Mapper 进程使用 multiprocessing 模块是否有帮助?或者调度程序是否会阻止 Mapper 脚本在计算节点上的多个线程上 运行?

在经典的 MapReduce 中,没有什么可以阻止您在 mapper 或 reducer 中拥有多个线程。 Hadoop Streaming 也是如此,每个 mapper 或 reducer 可以很好地拥有多个线程。如果您有 CPU 繁重的工作并想加快速度,就会发生这种情况。

如果您使用 Python 进行 Hadoop 流式处理,您可以使用 multiprocessing 模块来加速映射器阶段。

请注意,根据 Hadoop 集群的配置方式(每个节点有多少个 JVM mapper/reducer),您可能需要调整可以使用的最大进程数。