|NO.R.00001|——————————|Navigation|————|服务启动导航.v01|————|Hadoop.v01|yarn调整map&reduce参数.v01|


附录一:报错处理一:
### --- 报错现象:
~~~     卡在这个位置不会动,数据没有加载
~~~     在执行这个的时候,把history打开,用于监控错误信息

[root@hadoop02 ~]# sh $SCRIPT_HOME/dwd_load_startlog.sh 2020-07-21
Cannot run job locally: Input Size (= 368902544) is larger than hive.exec.mode.local.auto.inputbytes.max (= 134217728)
2021-10-02 20:14:22,095 Stage-1 map = 0%,  reduce = 0%   
附录二:报错处理二:
### --- 报错现象
Error during job, obtaining debugging information...
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched: 
Stage-Stage-1:  HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec

### --- 通过historyserver查看报错现象
Error:Java heap space       # 内存比较小
### --- 报错分析:内存分配问题

### --- 解决方案
~~~     解决方案一:加大内存:合理的分配内存
~~~     解决方案二:调整map和reduce数量

附录三:解决方案一:
### --- 解决方案:

~~~     # 调整map和reduce数量方案一:通过修改yarn计算资源来限制
~~~     给map、reduce task分配合理的内存;
~~~     map、reduce task处理合理的数据现在情况下map task分配了多少内存?
~~~     使用的是缺省参数每个task分配200M内存【mapred.child.java.opts】
~~~     每个节点:8 core / 32G;mapred.child.java.opts = 3G
### --- 设置yarn集群的map和reduce分配合理内存参数

~~~     # 设置yarn集群的map和reduce分配合理内存的参数
[root@hadoop01 ~]# vim /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/yarn-site.xml
 


        mapred.child.java.opts
        -Xmx3072m
### --- 重启yarn服务,并查看map和reduce参数

~~~     # 发送到其它节点
[root@hadoop01 ~]# rsync-script /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/yarn-site.xml
~~~     # 重启yarn服务
[root@hadoop01 ~]# stop-yarn.sh 
[root@hadoop01 ~]# start-yarn.sh
~~~     # 通过jps查看查看进程:YarnClid可以看到内存配置情况
[root@hadoop01 ~]# jps
17245 YarnClid

[root@hadoop01 ~]# ps -ef | grep 17245
~~~     # 输出配置参数
~~~ -Xmx3072m ~~~
附录四:解决方案二:
### --- 调整map和reduce数量方案二:通过脚本文件来限制

~~~     # 在hive下调整map个数:
    mapred.max.split.size=256000000
~~~     # 调整reduce个数:
    hive.exec.reducers.bytes.per.reducer
    hive.exec.reducers.max
~~~     # 配置参数:调整hive下map和reduce个数及大小

[root@hadoop02 ~]# vim  /data/yanqidw/script/member_active/dws_load_member_start.sh
hive \
-hiveconf mapred.max.split.size=128000000 \
-hiveconf hive.exec.reducers.bytes.per.reducer=128000000 \
-e "$sql" 
附录五:解决方案三:
### --- 调整map和reduce数量方案三:通过修改hive-site.xml文件来限制

~~~     此方案是全局的参数,不建议使用。
~~~     若是使用此方案,会对其它人的作业参数影响。
~~~     建议使用脚本文件来调整,只影响当前作业。

                 
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor
 

相关