spark执行源码中的例子时报错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark执行源码中的例子时报错相关的知识,希望对你有一定的参考价值。
在运行spark源码时报错:
Error:(45, 66) not found: type SparkFlumeProtocol
val transactionTimeout: Int, val backOffInterval: Int) extends SparkFlumeProtocol with Logging {
^
...
Error:(25, 27) not found: type EventBatch
def isErrorBatch(batch: EventBatch): Boolean = {
^
Error:(86, 51) not found: type SparkFlumeProtocol
val responder = new SpecificResponder(classOf[SparkFlumeProtocol], handler.get)
^
这一堆错误都出现在spark源码目录的external文件夹中...
解决方案:
我觉得出现这个问题的原因还是在对源码进行gen-idea的过程中下载需要的jar包时出现问题导致需要的jar包不全,我现在虽然可以编译成功了,但是具体的解决方案仍然不清楚,因为我同时做了如下2件事:
1.依次点击:View -> Tool Windows -> Maven Projects ->Generate Sources and Update Folders For All Projects(两个箭头首尾相连的那个按钮),然后等待...(这个过程如果你需要关闭idea,请随意,因为重启idea后他会继续...)
2.重复在spark源码目录下进行sbt->gen-idea的操作,让他自己在那下载不用
运行example时报错:
1.loadClass时报错java.lang.ClassNotFoundException: scala.Function1
修改在project structrue中如下
需要将运行的moudle选中:
如下只选择了example报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession$
at org.apache.spark.examples.sql.RDDRelation$.main(RDDRelation.scala:34)
at org.apache.spark.examples.sql.RDDRelation.main(RDDRelation.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SparkSession$
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
后添加scala的liberay时选中所有的module
以上是关于spark执行源码中的例子时报错的主要内容,如果未能解决你的问题,请参考以下文章
springboot项目中调用jar包中的类时报错 — 没有注入类
springboot项目中调用jar包中的类时报错 — 没有注入类