使用 Azure HDInsight 对 Apache Hadoop YARN 进行故障排除

了解处理 Apache Ambari 中的 Apache Hadoop YARN 有效负载时的最常见问题及其解决方法。

如何在群集上创建新的 YARN 队列?

解决步骤

在 Ambari 中使用以下步骤可以创建新的 YARN 队列,并在所有队列之间均衡容量分配。

在此示例中,两个现有队列(defaultthriftsvr)的容量都从 50 % 更改为 25%,因此,新队列 (Spark) 具有 50% 的容量。

队列 容量 最大容量
default 25% 50%
thrftsvr 25% 50%
Spark 50% 50%
  1. 依次选择“Abari 视图”图标和网格模式。 接下来,选择“YARN 队列管理器”。

    Apache Ambari 仪表板 YARN 队列管理器。

  2. 选择 default 队列。

    Apache Ambari YARN 选择默认队列。

  3. default 队列的容量从 50% 更改为 25%。 将 thriftsvr 队列的容量更改为 25%。

    将 default 和 thriftsvr 队列的容量更改为 25%。

  4. 若要创建新队列,请选择“添加队列”。

    Apache Ambari YARN 仪表板添加队列。

  5. 为新队列命名

    Apache Ambari YARN 仪表板名称队列。

  6. 容量值保留为 50%,并选择“操作”按钮。

    Apache Ambari YARN 选择操作。

  7. 选择“保存并刷新队列”。

    选择“保存并刷新队列”。

YARN 计划程序 UI 中会立即显示这些更改。

延伸阅读

如何从群集下载 YARN 日志?

解决步骤

  1. 使用安全外壳 (SSH) 客户端连接到 HDInsight 群集。 有关详细信息,请参阅延伸阅读

  2. 若要列出当前正在运行的 YARN 应用程序的所有应用程序 ID,请运行以下命令:

    yarn top
    

    ID 会列在 APPLICATIONID 列中。 可从 APPLICATIONID 列下载日志。

    YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root
    NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted
    Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed
    Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved
    Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved
    Queue(s) Containers: 2 allocated, 0 pending, 0 reserved
    
                      APPLICATIONID USER             TYPE      QUEUE   #CONT  #RCONT  VCORES RVCORES     MEM    RMEM  VCORESECS    MEMSECS %PROGR       TIME NAME
     application_1490377567345_0007 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628407    2442611  10.00   18:20:20 Thrift JDBC/ODBC Server
     application_1490377567345_0006 hive            spark  thriftsvr       1       0       1       0      1G      0G    1628430    2442645  10.00   18:20:20 Thrift JDBC/ODBC Server
    
  3. 若要下载所有应用程序主机的 YARN 容器日志,请使用以下命令:

    yarn logs -applicationIdn logs -applicationId <application_id> -am ALL > amlogs.txt
    

    此命令创建名为 amlogs.txt 的日志文件。

  4. 若只要下载最新应用程序主机的 YARN 容器日志,请使用以下命令:

    yarn logs -applicationIdn logs -applicationId <application_id> -am -1 > latestamlogs.txt
    

    此命令创建名为 latestamlogs.txt 的日志文件。

  5. 若要下载前两个应用程序主机的 YARN 容器日志,请使用以下命令:

    yarn logs -applicationIdn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
    

    此命令创建名为 first2amlogs.txt 的日志文件。

  6. 若要下载所有 YARN 容器日志,请使用以下命令:

    yarn logs -applicationIdn logs -applicationId <application_id> > logs.txt
    

    此命令创建名为 logs.txt 的日志文件。

  7. 若要下载特定容器的 YARN 容器日志,请使用以下命令:

    yarn logs -applicationIdn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
    

    此命令创建名为 containerlogs.txt 的日志文件。

附加阅读材料

后续步骤

如果你的问题未在本文中列出,或者无法解决问题,请访问以下渠道之一获取更多支持:

  • 如果需要更多帮助,可以从 Azure 门户提交支持请求。 从菜单栏中选择“支持” ,或打开“帮助 + 支持” 中心。