2016-08-17 53 views
1

我正在使用spark 1.3.0。我的build.sbt看起来如下:从sbt文件中的火花库中排除hadoop依赖项

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.3.0" % "provided", 
    "org.apache.spark" %% "spark-sql" % "1.3.0" % "provided", 
    "org.apache.spark" %% "spark-streaming" % "1.3.0" % "provided", 
    "org.apache.spark" %% "spark-mllib" % "1.3.0" % "provided", 
    "org.springframework.security" % "spring-security-web" % "3.0.7.RELEASE", 
    "com.databricks" % "spark-csv_2.10" % "1.4.0" 
) 

// META-INF discarding 
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) => 
    { 
    case PathList("META-INF", xs @ _*) => MergeStrategy.discard 
    case x => MergeStrategy.first 
    } 
} 

在编译期间使用此sbt文件hadoop 2.2.0。但我的运行环境包含hadoop 2.6.0。任何人都可以帮助我如何从spark库中排除hadoop依赖项,并在sbt文件中提到hadoop 2.6.0?

谢谢

回答

1

我不认为Spark包引入了Hadoop依赖关系。您的构建不会包含Hadoop客户端库。您将不得不从Spark安装中运行​​的应用程序。当你download Spark确保你下载了支持Hadoop 2.6的Spark版本。

Spark 1.3.0(2015-03-15)没有Hadoop 2.6版本。提供Hadoop 2.6版本的最早的Spark版本是Spark 1.3.1(2015-04-17)。

这些都是Spark的古老版本,其中包含许多已知错误,自那时起已经修复。除非你喜欢bug,否则我建议使用Spark 1.6.2或2.0.0。