问题描述
- spark分布式运行的过程中,自己有两个worker,但是运行的时候,只有一台worker正常运行,另一台报了右边的错,如下图
ERROR CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM
- 把正常的机器停掉,只运行有问题的worker(dl21,dl23),发现能出结果,但是两台机器的stderr仍然是右边的错,所以奇怪的是,结果怎么出来的?
- 网上说是因为资源分配不够,但是我分配了executor 10G资源,反而出现下面这种问题
然后有些机器就报下面这个错
- 还有说这个问题更多地与执行器/容器级别上的内存和动态时间分配有关
我配置了
.set("spark.dynamicAllocation.executorIdleTimeout", "5000s")
还是不行
因为有dl8可以,其他的不可以,所以分析不是程序问题也不是spark环境配置问题
解决方法
- 最后怎么都不行,重新安装了一个spark-3.0.2-bin-hadoop2.7, 原先是spark2.7