Advertisement

Spark—Task not serializable错误排查(RDD序列化问题)

阅读量:

Spark-core—RDD序列化

文章目录

  • Spark core中RDD序列化的相关内容
    • 第二条主要涉及对闭包的检查机制
      • 第三条则聚焦于序列化的具体方法及相关的属性设置

      • 第一项问题是Task not serializable异常产生的原因分析

        • 第二项则是该异常处理策略的优化建议
      • 3、序列化方法的案例2

      • 4、Kryo序列化框架

1、闭包检查

  • 从计算逻辑来看, 非算子相关的代码块主要位于客户端代码, 而包含运算符的代码块则主要位于任务服务端 。在Scala的函数式编程范式下, 这种结构安排会导致任务服务端频繁调用客户端的数据资源, 这种相互依赖的关系形成了一个闭环机制。
  • 如果所引用的客户端数据无法进行序列化操作, 就意味着这些数据无法被传递给任务服务端进行执行处理, 因此会导致整个任务服务出现故障。为此, 在启动任意一项计算任务之前都需要对闭环所包含的对象进行可序列化的验证工作, 我们将这一操作统称为闭环检测。

2、序列化方法和属性

就计算而言,在Driver端执行的是非算子相关的代码;而在Executor端则负责处理属于算子的部分。

1)Task not serializable报错原因

复制代码
    package Operat

全部评论 (0)

还没有任何评论哟~