创建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 |
|
mapreduce.map.java.opts | ||
mapreduce.reduce.java.opts | ||
Tez | tez.task.launch.cmd-opts |
|
tez.am.launch.cmd-opts | ||
Spark | spark.driver.extraJavaOptions |
|
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参数。
在DolphinScheduler中使用EMR Doctor任务采集
推荐您使用EMR的Gateway环境,因为在EMR Gateway上运行的调度系统有EMR Doctor部署的软件包等信息。
在Gateway上部署了DolphinScheduler,则可以在工作流定义的时候在选项参数部分,加入上表中EMR Doctor的配置,这样在工作流实际运行时,EMR Doctor就能对任务进行有效的采集,从而后续可以进行分析。
在旧版控制台EMR数据开发中使用EMR Doctor任务采集
例如,在EMR数据开发中设置了参数spark.driver.extraJavaOptions,如果想使用EMR Doctor功能,则需要参照上表追加EMR Doctor参数-noverify -javaagent:/usr/lib/taihaodoctor-current/emr-agent/btrace-agent.jar=libs=spark。