美文网首页
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