spark-sumit提交任务到yarn运行报OutofMemory内存溢出

本文详细解析了Spark任务中出现的内存溢出错误java.lang.OutOfMemoryError及权限错误AccessControlException的具体原因与解决策略。针对内存溢出,提供了调整executor-memory参数的方法,并讨论了数据倾斜的影响;对于权限错误,介绍了如何通过设置HADOOP_USER_NAME来避免。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.OutOfMemoryError: Java heap space

-XX:OnOutOfMemoryError=“kill %p”

Executing /bin/sh -c “kill 54710”…

yarn logs -applicationId application_1565223618995_0003 > log.log
用这个方法搜集该任务的日志,查看错误原因
这个可能会报错
提示不可信

INFO client.ConfiguredRMFailoverProxyProvider: Failing over to rm85

哪个路径执行了spark-submit 任务,就在那个路径下看看有没有log.log日志

spark-submit --master yarn-cluster --num-executors 1 --driver-memory 1g --executor-memory 500m --executor-cores 1 --jars $(echo /usr/chl/spark8/jars/*.jar | tr ’ ’ ‘,’) --class com.cn.tzproject.spark.streaming.kafka.kafka2es.Kafka2esStreaming /usr/chl/spark8/tz_bigdata_spark-1.0-SNAPSHOT.jar chl_test1

spark-submit
–master yarn-cluster //集群启动
–num-executors 1 //分配多少个进程
–driver-memory 300m //driver内存
–executor-memory 500m //进程内存
–executor-cores 1 //开多少个核,线程
–jars $(echo /usr/chl/spark1/jars/*.jar | tr ’ ’ ‘,’) //加载ar
–class com.cn.tzproject.spark.streaming.kafka.kafka2es.Kafka2esStreaming /usr/chl/spark1/tz_bigdata_saprk-1.0-SNAPSHOT.jar

内存溢出有几种可能情况

1、–executor-memory 500m内存分配不足

这种情况,可以逐步加多内存看看,我加到600m可以跑,尽可能加多些内存

2、数据倾斜,由于程序处理原因,导致数据到跑到一个节点上,那个节点的内存不够跑。
分析程序代码,查找可能的原因。

另一个错误
Exception in thread “main” org.apache.hadoop.security.AccessControlException:Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

这个错误是因为系统没有一个用户名叫hdfs,在执行spark任务角色是hdfs
在这里插入图片描述

解决方法:

在.bash_profile里面添加这句 这个文件是/root下的隐藏文件
export HADOOP_USER_NAME=hdfs

然后保存,source .bash_profile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值