在yarn上调优hadoop作业执行

djmepvbi  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(324)

介绍一下-我正在学习hadoop。我已经在hadoop(集群)之上实现了机器学习算法,并且只在一个小例子(30mb)上进行了测试。
几天前,我安装了ambari并创建了一个由四台机器(master和3个worker)组成的小集群。master有资源管理器和namenode。
现在我通过增加数据量(300mb,3gb)来测试我的算法。我正在寻找一个指针如何调整我的小集群。具体来说,我想知道如何确定mapreduce2和ambari中的Yarn设置。
如何确定容器的最小/最大内存、容器的保留内存、排序分配内存、Map内存和减少内存?
问题是我的作业在hadoop上的执行速度非常慢(而集群是一种迭代算法,这会让事情变得更糟)。
我感觉我的群集设置不好,原因如下:
我为一个30mb的数据集运行一个作业(我为这个作业设置了8mb的块内存,因为数据很小,处理很密集)-执行时间为30分钟
我运行相同的作业,但将相同的数据集乘以10倍-300mb(相同的块大小,8mb)-执行时间为2小时
现在相同的数据量-300mb,但块大小128mb-相同的执行时间,甚至可能有点超过2小时
hdfs上的块大小是128mb,所以我认为这会导致加速,但事实并非如此。我的疑问是集群设置(最小/最大ram大小、map和reduce ram)不好,因此即使实现了更大的数据局部性,也无法改进。
这可能是一个错误设置的结果,还是我错了?

2lpgd968

2lpgd9681#

请在Yarn配置中设置以下属性,为每个作业分配33%的最大Yarn内存,可以根据您的要求进行更改。
yarn.scheduler.capacity.root.default.user limit factor=1 yarn.scheduler.capacity.root.default.user limit factor=0.33如果您需要更多信息,请参考以下链接https://analyticsanvil.wordpress.com/2015/08/16/managing-yarn-memory-with-multiple-hive-users/

相关问题