|NO.Z.00009|——————————|^^ 重要 ^^|——|Hadoop&Spark环境部署.v09|——|Hadoop.v09|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
<!-- 设置map、reduce合理内存参数 -->
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx3072m</value>
</property>
### --- 重启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
版权声明:本文为yanqi_vip原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。