美文网首页
Spark开发中问题01---sc序列化问题

Spark开发中问题01---sc序列化问题

作者: Wistom | 来源:发表于2019-03-08 11:13 被阅读0次

    整理下问题集合到简书!从单机版分享出来。

    1.只能创建一个SparkContext

    Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at:

    问题解决:检查下,是不是创建了两个,包括你得父类,或者本类中创建了多个sc。


    2.序列化问题

    Caused by: java.io.NotSerializableException: org.apache.spark.SparkContext

    Serialization stack:

    - object not serializable (class: org.apache.spark.SparkContext, value: org.apache.spark.SparkContext@3f1ed068)

    - field (class: com.cfb.bigdata.core.base.BaseJob, name: sc, type: class org.apache.spark.SparkContext)

    - object (class com.cfb.bigdata.core.job.WebJobClean, com.cfb.bigdata.core.job.WebJobClean@67514bdd)

    1.关于此类问题。首先不用说肯定是序列化问题出了错。首先可能是你在使用map,filter等RDD操作时候因为这是在driver上的操作,所以这些东西不序列化肯定是拿不到的。这是一个问题。

    2.第二个可能是你的sparkcontext 在broadcast.value的时候出现,解决方法,就是在你得本class中,重新创建一个val a =broadcast.value,这样的a代替broadcast.value 传入到map或者其他在excutor中操作不会出现问题。

    3.其实最好的做法就是把sparkcontext放入一个单独的object中进行使用。你得job只需要引用的时候,直接拿出来,就不会出现这类问题了。一劳永逸。

    相关文章

      网友评论

          本文标题:Spark开发中问题01---sc序列化问题

          本文链接:https://www.haomeiwen.com/subject/sxbfextx.html