问题:
使用Spark时 RDD的map,foreach等操作正常,执行collect到本地时报错,本地文件大小约为5m。
解决:
在博客上查报错信息有如下解释:
1.dirver端内存不足,spark强制关闭了任务,这里本地文件为5m,排除内存不足问题
2.spark core version 与 io.netty 的版本不一致造成冲突
于是怀疑是netty版本不对应,寻找其他工程中的External Libraris发现netty版本偏高(图中红线部分),在pom中加入新的netty依赖,异常解除。
tip:生产环境中未报错,rdd的所有action都没问题,本地collect验证数据时发现这个坑。
报错信息:
修改pom:
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.0.29.Final</version>
</dependency>