在调度中使用EMR Doctor任务采集功能

创建EMR集群时,已默认安装EMR Doctor环境并开通EMR Doctor任务信息采集用于健康度评估,但部分客户端参数配置可能导致任务采集失效。本文为您介绍如何在客户端追加采集参数以保证EMR Doctor任务采集正常工作。

EMR Doctor配置

通常情况下, 您不需要设置任何EMR Doctor参数,EMR集群已默认配置好客户端配置参数。如果您手动修改过下表中的参数,或者在作业中设置了下表中的参数,则会导致集群默认参数被覆盖,此时需要您手动在自行设定的参数后边追加以下EMR Doctor配置。

E-MapReduce(简称EMR)Doctor任务指标采集是通过Java Agent进行处理的,EMR Doctor设置的Agent参数如下表所示。

重要

本文配置中的新版本集群指的是数据湖(DataLake)和数据服务(DataServing)场景以及自定义集群场景的集群。旧版本集群指的是旧版控制台的Hadoop集群和Gateway集群。

引擎名称

参数

需追加的EMR Doctor配置

MapReduce

yarn.app.mapreduce.am.command-opts

  • 新版本集群

    -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=mr

  • 旧版本集群

    -javaagent:/usr/lib/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=mr

mapreduce.map.java.opts

mapreduce.reduce.java.opts

Tez

tez.task.launch.cmd-opts

  • 新版本集群

    -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=mr,config=tez

  • 旧版本集群

    -javaagent:/usr/lib/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=mr,config=tez

tez.am.launch.cmd-opts

Spark

spark.driver.extraJavaOptions

  • 新版本集群

    -noverify -javaagent:/opt/apps/TAIHAODOCTOR/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark

  • 旧版本集群

    -noverify -javaagent:/usr/lib/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark

spark.executor.extraJavaOptions

spark.yarn.am.extraJavaOptions

在DataWorks on EMR中使用EMR Doctor任务采集

使用DataWorks on EMR方式进行调度,如果在配置EMR节点作业时设置了EMR Doctor配置,则需要在参数后追加EMR Doctor配置。

例如,在Spark开发中设置了spark.driver.extraJavaOptions,如果想使用Doctor功能,则需要追加EMR Doctor参数。DataWorks on EMR

在DolphinScheduler中使用EMR Doctor任务采集

推荐您使用EMR的Gateway环境,因为在EMR Gateway上运行的调度系统有EMR Doctor部署的软件包等信息。

在Gateway上部署了DolphinScheduler,则可以在工作流定义的时候在选项参数部分,加入上表中EMR Doctor的配置,这样在工作流实际运行时,EMR Doctor就能对任务进行有效的采集,从而后续可以进行分析。emr_gateway

在旧版控制台EMR数据开发中使用EMR Doctor任务采集

例如,在EMR数据开发中设置了参数spark.driver.extraJavaOptions,如果想使用EMR Doctor功能,则需要参照上表追加EMR Doctor参数-noverify -javaagent:/usr/lib/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark追加参数前