zoukankan      html  css  js  c++  java
  • 关于Spark中的常见问题及解决方法(1)

    前言

    对于Spark的故障排除,很多因素都可能会影响Spark作业,我们无法涵盖所有内容。 但我们可以讨论一些更常见的Spark问题。

    Spark作业无法启动

    这个问题经常出现,特别是当我们刚开始使用新的部署或环境时。
    主要症状

    • Spark作业无法启动
    • 除了驱动程序之外,Spark UI不会显示群集上的任何节点。
    • Spark UI显示的信息好像不正确。

    可能的原因分析
    这种情况通常发生在群集或应用程序的资源需求没有被正确配置。 在配置群集的过程中,我们可能错误地配置了某些内容(络,文件系统和其他资源),导致运行Driver的节点无法与Executor通信。 这可能是因为我们未指定打开特定的IP和端口号或使用了错误的IP和端口号。 另外,也可能是因为我们的应用程序为每个Executor请求的资源大于集群管理器当前空闲的资源,在这种情况下,Driver将会一直等待,直到Executor启动。

    可能的解决方法

    • 确保机器可以在指定的端口上相互通信。 理想情况下,除非使用更严格的安全限制,否则应该打开工作节点之间的所有端口。
    • 确保Spark资源配置正确,并且集群管理器也被正确配置。 可以尝试先运行一个简单的应用程序,看看是否有效。 一个常见问题可能是每个Executor请求的内存多于集群管理器可以自由分配的内存,因此可以比较一下UI中显示的空闲内存和spark-submit提交的内存配置。

    运行前的出现错误

    这种问题很可能是因为我们修改了一些代码,导致程序无法正常运行。

    主要症状

    • 命令根本无法运行,并且输出大量的错误消息。
    • 检查Spark UI时候发现没有任何jobs,stages或tasks运行。

    可能的原因分析

    在检查并确认Spark UI环境选项卡显示应用程序的信息都正确后,在仔细检查我们的Spark代码。 很多时候,可能会出现一个简单的拼写错误或不正确的列名,导致Spark作业无法编译到其底层的Spark计划中。

    可能的解决方法

    • 查看Spark返回的错误,以确认代码中没有问题,例如提供错误的输入文件路径或字段名称。
    • 仔细检查群集的Driver,Executor和正在使用的存储系统之间的网络连接是否正常
    • 错误的库或CLASSPTH值可能存在导致加载库的版本不正确。 尝试简化应用程序,直到获得一个重现问题的较小版本(例如,只读取一个数据集)。

    运行中出现错误

    主要症状

    • 一个Spark作业在整个集群上成功运行,但下一个失败。
    • 多步查询中某一步的失败。
    • 一个定时作业,昨天运行成功,但今天失败了。

    可能的解决方法

    • 检查数据格式是否存符合预期。 这可能是由于某些上游数据出现变化造成的。
    • 如果在运行查询时(即在启动任务之前)弹出错误,这意味着我们可能拼错了查询中引用的列名,或者引用的列,视图或表不存在。
    • 仔细查看堆栈跟踪,试图找到涉及哪些组件的线索(例如,运行时所用的算子和所处于的阶段)
    • 尝试通过逐步检查输入数据并确保数据格式正确。 还可以尝试删除部分逻辑来缩小排查范围。
    • 如果作业运行任务一段时间后失败,则可能是由于输入数据本身存在问题,其中可能是因为没有正确schema或数据与schema不匹配。 例如,指定的schema中表名数据不包含空值,但实际数据包含空值,这可能导致某些转换失败。
    • 也有可能是因为代码逻辑问题导致崩溃,在这种情况下,Spark显示代码抛出的异常。 在这种情况下,可以在Spark UI上查看标记为“失败”的任务,还可以查看该计算机上的日志以了解失败时正在执行的操作。 我们尝试在代码中添加更多日志来确定正在处理哪些数据记录,是哪些数据导致失败

    参考资料

    [BOOK] Spark - The Definitive Guide

  • 相关阅读:
    DSP EPWM学习笔记2
    DSP EPWM学习笔记1
    DSP
    DSP bootloader学习笔记1
    Source Insight 中使用 AStyle 代码格式工具
    DSP基础学习-ADC同步采样
    DSP算法学习-过采样技术
    救救一个只会用万能头的孩子!
    传参(转)
    return
  • 原文地址:https://www.cnblogs.com/lestatzhang/p/10611292.html
Copyright © 2011-2022 走看看