我已经阅读了很多关于在机器集群上运行的 Hadoop 和 Map-Reduce 的信息。有人知道 Apache 发行版是否可以在具有多个内核的 SMP 上运行。特别是,可以在同一台机器上运行多个 Map-Reduce 进程。调度程序将负责将它们分布在多个核心上。谢谢。- 公斤
3 回答
是的。您在每台机器上有多个 map 和 reduce 插槽,由 RAM 和 CPU 确定(每个 JVM 实例默认需要 1GB,因此具有 16 个内核的 8GB 机器仍然应该有 7 个任务插槽)
使用配置旋钮:mapred.tasktracker.map.tasks.maximum 和 mapred.tasktracker.reduce.tasks.maximum 来控制在 TaskTracker 上同时生成的 map/reduce 的数量。默认情况下,它设置为 2,因此在 TaskTracker 上的给定实例上最多可以看到 2 个 map 和 2 个 reduce。
您可以在每个任务跟踪器的基础上设置这些以准确反映您的硬件(即在更强大的任务跟踪器等上将它们设置为更高的数字)。
您可以将那些轻量级的 MapReduce 框架用于多核计算机。
例如
LeoTask:用于多核计算机的轻量级、高效且可靠的 mapreduce 框架
对于 Apache Hadoop 2.7.3,我的经验是启用 YARN 也将启用多核支持。这是在单个节点上启用 YARN 的简单指南:
默认配置似乎工作得很好。如果你想调整你的核心使用,那么也许考虑在 yarn-site.xml ( https://hadoop. apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml)
此外,有关如何配置具有多核支持的简单 Hadoop 沙箱的说明,请参见此处:https ://bitbucket.org/aperezrathke/hadoop-aee