将Spark源代码导入intellj,构建错误:未找到:键入SparkFlumeProtocol和EventBatch

时间:2015-10-23 21:40:39

标签: maven intellij-idea build compiler-errors apache-spark

IntelliJ :14.1.4

Spark :1.5发布源代码

我正在将Spark源代码导入IntellJ,并按照Spark website上的步骤进行操作。

在构建和编译项目时,我遇到了以下错误。我已经google了一下,在Maven工具栏中为“Spark Project External Flume Sink”尝试了suggested here in spark user list到“生成源和更新文件夹”,但仍然有相同的错误。

我很确定这是一个解决问题,因为所有其他类都已成功解决。也许我没有正确使用IntelliJ?有什么建议吗?非常感谢你。

Error:(45, 66) not found: type SparkFlumeProtocol
  val transactionTimeout: Int, val backOffInterval: Int) extends SparkFlumeProtocol with Logging {
                                                                 ^
Error:(70, 39) not found: type EventBatch
  override def getEventBatch(n: Int): EventBatch = {

1 个答案:

答案 0 :(得分:13)

我已经解决了这个问题,事实证明" Spark Project外部水槽接收器"在默认设置下导入Spark源代码时排除

我做了什么:

  1. 文件 - >项目结构 - >模块 - > "火花流-水槽-sink_2.10" - >来源
  2. 在文件夹的树形显示中,最初" target"文件夹被排除,但" SparkFlumeProtocol"和#34; EventBatch"类被编译到此文件夹
  3. 设定"目标"文件夹为"来源",然后将所有内容保留在" target" as"排除"除了" scala-2.10",请参阅随附的屏幕截图。
  4. 通过这种方式,可以包含编译类,并且可以在重新构建项目后正确解析类。

    enter image description here

    ---更新June-8-2016 --------

    或更具体地说,该模块的整个路径

    请注意类型和颜色,它会影响包名称

    package org.apache.spark.streaming.flume.sink;  
    

    enter image description here