解决Spark GraphX报错: java.lang.ArrayIndexOutOfBoundsException: -1

本文介绍了在使用Spark GraphX处理大数据时遇到的`java.lang.ArrayIndexOutOfBoundsException: -1`错误,以及如何通过增加executor内存资源`--executor-memory`来解决问题。在数据量增大后,首先出现shuffle读写不平衡,调整资源后,又遇到数组越界异常。经过代码逻辑检查无误后,从社区问题SPARK-5480找到线索,发现是数据量大导致,最终通过扩大executor内存成功解决。
摘要由CSDN通过智能技术生成

看很少有博客说这种问题,那我就分享一下踩坑记录吧~

首先说一下解决方法:增加executor的内存资源:--executor-memory 

最近用spark做了一个有关风险传导的算子,其中调用了GraphX进行计算,测试时用的数据量比较少,所以没有意外地执行完毕了。

但是在数据量增加之后,首先报了shuffle读写不平衡的错,这是在图计算中产生的大量shuffle和资源配置不平衡导致的,了解spark的童鞋都清楚,调整资源就可以解决。但是在调整资源之后,又报了个错: java.lang.ArrayIndexOutOfBoundsException: -1

具体如图:

 按照常规思路:资源的问题解决了,又报这个错,而且是数组越界,很容易就想到---不会是代码逻辑出问题了吧? 然后,对数据中的null、空字符串等等进行检查之后,发现没有问题。

之后查询发现,graphx数据量变大的时候,很容易出现这种问题:[SPARK-5480] GraphX pageRank: java.lang.ArrayIndexOutOfBoundsException: - ASF JIRAz

既然是数据量大导致的,那么就放大资源试试好了,然后试着增加每个executer的内存,解决啦~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值