文章目录
前言
对于Spark的故障排除,很多因素都可能会影响Spark作业,我们无法涵盖所有内容。 但我们可以讨论一些更常见的Spark问题。
Spark作业无法启动
这个问题经常出现,特别是当我们刚开始使用新的部署或环境时。
主要症状
- Spark作业无法启动
- 除了驱动程序之外,Spark UI不会显示群集上的任何节点。
- Spark UI显示的信息好像不正确。
可能的原因分析
这种情况通常发生在群集或应用程序的资源需求没有被正确配置。 在配置群集的过程中,我们可能错误地配置了某些内容(络,文件系统和其他资源),导致运行Driver的节点无法与Executor通信。 这可能是因为我们未指定打开特定的IP和端口号或使用了错误的IP和端口号。 另外,也可能是因为我们的应用程序为每个Executor请求的资源大于集群管理器当前空闲的资源,在这种情况下,Driver将会一直等待,直到Executor启动。
可能的解决方法
- 确保机器可以在指定的端口上相互通信。 理想情况下,除非使用更严格的安全限制,否则应该打开工作节点之间的所有端口。
- 确保Spark资源配置正确,并且集群管理器也被正确配置。 可以尝试先运行一个简单的应用程序,看看是否有效。 一个常见问题可能是每个Executor请求的内存多于集群管理器可以自由分配的内存,因此可以比较一下UI中显示的空闲内存和spark-submit提交的内存配置。
运行前的出现错误
这种问题很可能是因为我们修改了一些代