HDInsight群集上的YARN应用数量突然激增

时间:2016-07-29 01:57:32

标签: hdinsight azure-data-factory

出于某种原因,有时集群似乎行为不端,因为我突然看到YARN工作数量激增。我们正在使用基于HDInsight Linux的Hadoop集群。我们运行Azure数据工厂作业以基本上执行指向此群集的一些配置单元脚本。通常,YARN应用程序在任何给定时间的平均数量都是50运行和40-50待定。 None使用此群集进行即席查询执行。但是几天后我们就会发现一些奇怪的东西。突然,Yarn应用程序的数量开始增加,无论是运行还是待处理,但特别是待处理的应用程序。因此,对于运行Yarn应用程序而言,此数字超过100,而对于待处理的应用程序,它超过400或有时甚至超过500。我们有一个脚本可以逐个杀死所有的Yarn应用程序,但这需要很长时间,而且这也不是真正的解决方案。根据我们的经验,我们发现唯一的解决方案是删除并重新创建群集。有时可能会延迟群集的响应时间(尤其是Hive组件),但在这种情况下,即使切片失败,ADF仍会多次重试,群集是否可能存储所有假设的池中的切片执行请求失败(根据ADF)并尝试在可以的时候运行?这可能是它为什么会发生的唯一解释。有人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:1)

检查默认队列中所有正在运行的作业是否为Templeton作业。如果是这样,那么你的队列就会陷入僵局。

Azure数据工厂使用WebHCat(Templeton)向HDInsight提交作业。 WebHCat会旋转一个父Templeton作业,然后提交一个子作业,这是您尝试运行的实际Hive脚本。如果父母一次有太多工作填满群集容量,没有子工作(实际工作)能够启动应用程序主服务器,那么纱线队列就会陷入僵局,因此实际上没有工作。 请注意,如果你杀死Templeton作业,这将导致数据工厂将时间片标记为已完成,即使它显然不是。

如果您已陷入僵局,可以尝试将最大AM资源从默认的33%调整到更高的值和/或扩展群集。目标是能够允许一些待处理的子作业运行并慢慢耗尽队列。

作为正确的长期修复,您需要配置WebHCat,以便将父模板作业提交到单独的Yarn队列。您可以通过(1)创建单独的纱线队列和(2)将 templeton.hadoop.queue.name 设置为新创建的队列来完成此操作。

要创建队列,您可以通过Ambari>创建队列。纱线队列经理。

要通过Ambari更新WebHCat配置,请转到Hive选项卡>高级>高级WebHCat-site,并在那里更新配置值。

有关WebHCat配置的更多信息: https://cwiki.apache.org/confluence/display/Hive/WebHCat+Configure