spark集群环境下提交jar包运行程序,对mysql数据库中五百万条数据进行读取,报如下错:
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:192)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at io.netty.buffer.PooledByteBuf.setBytes(PooledByteBuf.java:253)
at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:1133)
读取同数据库其他表几百条数据正常显示,这个就不行,初步感觉应该是需要对spark参数进行调优或者对集群参数修改,对这方面并不熟悉,这个报错很懵,希望给出建议
尝试修改过spark-env,添加了export SPARK_EXECUTOR_MEMORY=5g,export SPARK_DRIVER_MEMORY=10g,没有解决
硬件配置10核,128g内存,集群环境centos7,hadoop3.1.3,spark3.1.1,mysql5.7
4条回答
- keeper& 2022-10-31 08:45关注本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录小7很烦恼 2022-10-31 11:52
1.三台,完全分布式
2.因为进行计算一开始也是报错,所以将代码改为单纯的读库,无shuffle
3.没有设置,默认值
4.查看过,部分失败,报了错后其他节点还在跑赞回复资源总量:core 30 ,内存 128g *3 对吧?
用这个参数提交试下
spark-submit --class 类名
--master yarn-client
--num-executors 10
--executor-memory 30G
--executor-cores 2
--driver-memory 6G
--conf spark.default.parallelism=500
--conf spark.sql.shuffle.partitions=500
--conf spark.storage.memoryFraction=0.5
--conf spark.shuffle.memoryFraction=0.3
./包名赞回复展开全部5条评论
- 不觉明了 2022-10-31 11:19关注解决 无用评论 打赏 举报
关注
解决评论 打赏 举报无用 1- Jackyin0720 2022-10-31 08:04关注解决评论 打赏 举报 编辑记录无用 1