调整YARN上的Hadoop作业执行

时间:2016-02-12 10:57:46

标签: hadoop yarn ambari

一点介绍 - 我正在学习Hadoop。我已经在Hadoop(集群)之上实现了机器学习算法,并且仅在一个小例子(30MB)上进行了测试。

几天前,我安装了Ambari并创建了一个由四台机器组成的小型集群(主机和3台机器)。 Master有资源管理器和NameNode。

现在我通过增加数据量(300MB,3GB)来测试我的算法。我正在寻找一个如何调整我的迷你群集的指针。具体来说,我想知道如何在Ambari中确定MapReduce2和YARN设置。

如何确定容器的最小/最大内存,容器的保留内存,排序分配内存,映射内存和减少内存?

问题是Hadoop上我的作业执行速度非常慢(聚类是一种迭代算法,这会让事情变得更糟)。

我感觉我的群集设置不好,原因如下:

  • 我为一个30MB的数据集运行一个作业(我为这个作业设置块内存为8MB,因为数据很小而且处理很密集) - 执行时间30分钟
  • 我运行相同的工作,但是将相同的数据集相乘10次 - 300MB(相同的块大小,8MB) - 执行时间2小时
  • 现在数据量相同 - 300MB,但块大小为128MB - 执行时间相同,甚至可能超过2小时

HDFS上的块大小是128MB,所以我认为这会导致加速,但事实并非如此。我的疑问是集群设置(最小/最大RAM大小,映射和减少RAM)不好,因此即使实现了更大的数据位置也无法改善。

这可能是设置错误的结果,还是我错了?

1 个答案:

答案 0 :(得分:0)

请在Yarn configuratins中设置以下属性,以便为每个作业分配33%的最大纱线内存,可根据您的要求进行更改。

yarn.scheduler.capacity.root.default.user限制因子= 1 yarn.scheduler.capacity.root.default.user限制因子= 0.33 如果您需要有关此问题的更多信息,请参阅以下链接https://analyticsanvil.wordpress.com/2015/08/16/managing-yarn-memory-with-multiple-hive-users/