5

我正在建立一个hadoop集群,其中节点都是相当异构的,即它们每个都有不同数量的核心。目前我必须手动编辑mapred-site.xml每个节点上的填写{cores}

<property>
    <name>mapred.tasktracker.map.tasks.maximum</name>
    <value>{cores}</value>
</property>

当我添加新节点时,有没有更简单的方法?大多数其他值是一些默认值,最大映射任务是唯一从节点到节点变化的东西。

4

1 回答 1

3

如果您对某些脚本感到满意,那么以下将为您提供每台机器的“处理器”数量(这对不同的架构意味着不同的事情,但或多或​​少是您想要的):

cat /proc/cpuinfo | grep processor | wc -l

然后您可以使用sed或等效的方法根据此输出更新您的 mapred-site.xml 文件。

所以把这一切放在一起:

CORES=`cat /proc/cpuinfo | grep processor | wc -l`
sed -i "s/{cores}/$CORES/g" mapred-site.xml

一个脚注,但您可能不想将每个映射器的数量和减速器的数量配置为核心数量,因此您可能希望将它们拆分为两种类型,并为数据节点提供核心备用和任务跟踪器等。

于 2013-04-25T23:10:36.463 回答