我有一个Hadoop 2.2集群部署在少量强大的机器上。我有一个限制用纱线作为框架,我不是很熟悉。

  1. 如何控制实际地图的数量并减少将并行运行的任务?每台机器都有许多CPU核心(12-32)和足够的RAM。我想最大限度地利用它们。
  2. 如何监视我的设置实际上导致了更好的机器利用率?在哪里可以检查给定作业期间使用多少核(线程,过程)?
  3. 提前感谢,帮助我融化这些机器:)

有帮助吗?

解决方案

1.
在mr1,mapred.tasktracker.map.tasks.maximum和mapred.tasktracker.reduce.task.maximum propersim决定了每个TaskTracker的映射和减少插槽。

纱线中不再存在这些性质。相反,纱线使用yarn.nodemanager.resource.memory-MB和yarn.nodemanager.resource.cpu-vcores,它控制每个节点上的内存和CPU的量,都可供两张地图和减少

基本上是:
纱线没有TaskTrackers,但只是通用的NodeManagers。因此,没有更多的地图插槽并减少插槽分离。一切都取决于使用/要求的内存量

2.

使用Web UI,您可以获得很多监控/管理类型的信息:

namenode - http://:50070 /
资源管理器 - http://:8088 /

此外,Apache Ambari是指的: http://ambari.apache.org/

和用于在许多方面与Hadoop /纱线群接口的色调: http://gethue.com/

其他提示

  1. 有一个好从Hortonworks
  2. 指导纱线配置
  3. 您可以在作业历史记录中的作业分析服务器。它通常可以在19888港口找到。 Ambari ganglia 对于集群利用测量也非常有利。

我有同样的问题, 为了增加映射器的数量,建议减小输入分割的大小(每个输入拆分由映射器处理,因此容器)。我不知道如何做到,

事实上,Hadoop 2.2 / yarn没有考虑以下设置

<property>
    <name>mapreduce.input.fileinputformat.split.minsize</name>
    <value>1</value>
</property>
<property>
    <name>mapreduce.input.fileinputformat.split.maxsize</name>
    <value>16777216</value>
</property>

<property>
    <name>mapred.min.split.size</name>
    <value>1</value>
</property>
<property>
    <name>mapred.max.split.size</name>
    <value>16777216</value>
</property> 
.

最好

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top