
# 配置Yarn大作业扫描
#### 操作场景
Yarn大作业扫描功能主要用于监控Hive、HetuEngine、Spark等作业的本地临时文件（例如shuffle文件是否过大）、监控Hive、HetuEngine、Spark的关键HDFS目录（不支持OBS）是否过大。对于占用存储资源（本地磁盘或者关键HDFS目录）过大的作业上报事件。
监控的HDFS目录请参见[表1]。
 表1监控HDFS目录 
| 组件         | 监控HDFS目录                                           | 阈值   |
|:---|:---|:---|
| Hive       | hdfs://hacluster/tmp/hive-scratch/\*/              | 400G |
| HetuEngine | hdfs://hacluster/hetuserverhistory/\*/coordinator/ | 100G |
| Spark      | hdfs://hacluster/sparkJobHistory/                  | 100G |
   
#### 约束与限制
本章节内容仅适用于MRS 3.5.0及之后版本。
#### 操作步骤
1. 登录FusionInsight Manager。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> Yarn \> 配置 \> 全部配置"。
3. 搜索并根据实际需要修改相关参数。 
   - 配置Yarn大作业监控
     表2配置Yarn大作业参数 
     | 参数名称                            | 参数描述                                                                                                                                                                                                                                                                                                                                                      | 取值样例 |
     |:---|:---|:---|
     | job.monitor.check.period        | 大作业监控周期。 - 配置为0表示禁用大作业监控。  - 取值范围：1\~720  - 单位：分钟。                                           | 10   |
     | job.monitor.local.thread.pool   | 获取NodeManager的监控的大作业的信息的线程数。 取值范围：1\~500                                                                                                                                                                                                                                                                                   | 50   |
     | max.job.count                   | 上报的事件中显示大作业的数量。 取值范围：1\~500                                                                                                                                                                                                                                                                                              | 5    |
     | job.monitor.local.dir.threshold | 监控NodeManager本地磁盘作业目录的大小，超过当前阈值就会上报事件。 - 默认值：20  - 取值范围：1\~1800000000000  - 单位：GB。   | 20   |
        
     
   
   - 配置HetuEngine作业大目录监控
     表3配置HetuEngine 
     | 参数名称                        | 参数描述                                                                                                                                                                                                                                                                                                                                                          | 取值样例                                               |
     |:---|:---|:---|
     | hetu.job.hdfs.monitor.dir   | 监控HetuEngine作业的大目录监控路径，不允许监控根目录。 如果需要监控的目录包含用户目录等可变目录使用/\*/代替。                                                                                                                                                                                                                                                              | hdfs://hacluster/hetuserverhistory/\*/coordinator/ |
     | hetu.job.appId.parser.rule  | 监控HetuEngine作业的大目录监控路径中作业ID的提取规则。例如： - {subdir}/{appid}：作业ID在监控目录的子目录中，子目录名称不固定。  - {appid}：作业ID在监控目录下。                                                     | {appid}                                            |
     | hetu.job.hdfs.dir.threshold | 监控HetuEngine作业的大目录阈值，超过当前阈值就会上报事件。 - 取值范围：1\~1800000000000  - 默认值：100  - 单位：GB。   | 100                                                |
        
     
   
   
   
   - 配置Hive作业大目录监控
     - 对于大作业扫描特性中Hive组件，需要配置"hive-ext.record.mr.applicationid=true"时才能生效，详细操作步骤如下： 在Manager界面，"集群 \> 服务 \> Hive \> 配置 \> 全部配置"，在左侧导航栏选择"HiveServer（角色） \> 自定义"，在"hive.server.customized.configs"参数中添加参数名称"hive-ext.record.mr.applicationid"，值为"true"，保存配置。
       然后在Yarn组件的"全部配置"页面修改以下参数。
       
     
     - Hive大作业扫描特性目前只针对MR引擎。
     
     
     表4配置Hive 
     | 参数名称                        | 参数描述                                                                                                                                                                                                                                                                                                                                          | 取值样例                                  |
     |:---|:---|:---|
     | hive.job.hdfs.monitor.dir   | 监控Hive作业的大目录监控路径，不允许监控根目录。 如果需要监控的目录包含用户目录等可变目录使用/\*/代替。                                                                                                                                                                                                                                                       | hdfs://hacluster/tmp/hive-scratch/\*/ |
     | hive.job.appId.parser.rule  | 监控Hive作业的大目录监控路径中作业ID的提取规则。例如： - {subdir}/{appid}：作业ID在监控目录的子目录中，子目录名称不固定。  - {appid}：作业ID在监控目录下。                                                 | {subdir}/{appid}                      |
     | hive.job.hdfs.dir.threshold | 监控Hive作业的大目录阈值，超过当前阈值就会上报事件。 - 取值范围：1\~1800000000000  - 默认值：400  - 单位：GB。   | 400                                   |
        
     
   
   - 配置Spark作业大目录监控
     表5配置Spark 
     | 参数名称                         | 参数描述                                                                                                                                                                                                                                                                                                                                  | 取值样例                              |
     |:---|:---|:---|
     | spark.job.hdfs.monitor.dir   | 监控Spark作业的大目录监控路径，不允许监控根目录。 如果需要监控的目录包含用户目录等可变目录使用/\*/代替。                                                                                                                                                                                                                                             | hdfs://hacluster/sparkJobHistory/ |
     | spark.job.appId.parser.rule  | 监控Spark作业的大目录监控路径中作业ID的提取规则，例如： - {subdir}/{appid}：作业ID在监控目录的子目录中，子目录名称不固定。  - {appid}：作业ID在监控目录下。                                   | {appid}                           |
     | spark.job.hdfs.dir.threshold | 监控Spark作业的大目录阈值，超过当前阈值就会上报事件。 - 取值范围：1\~1800000000000  - 默认值：100  - 单位：GB。   | 100                               |
        
     
   
   
   
   
4. 保存修改的配置。保存完成后请重新启动配置过期的服务或实例以使配置生效。
 
