Java Spark StreamingContext错误

Java Spark StreamingContext错误,java,eclipse,scala,streaming,apache-spark,Java,Eclipse,Scala,Streaming,Apache Spark,我是一名Java老手,正在尝试学习Scala+Spark流。 我下载了基于Eclipse的Scala IDE+Spark core jar+Spark Streaming jar 2.10,并尝试了该示例-我发现了错误: val ssc = new StreamingContext(conf, Seconds(1)); 说明资源路径位置类型错误的符号引用。A. StreamingContext.class中的签名指的是包中的术语conf org.apache.hadoop,不可用。它可能完全丢

我是一名Java老手,正在尝试学习Scala+Spark流。 我下载了基于Eclipse的Scala IDE+Spark core jar+Spark Streaming jar 2.10,并尝试了该示例-我发现了错误:

val ssc = new StreamingContext(conf, Seconds(1));
说明资源路径位置类型错误的符号引用。A. StreamingContext.class中的签名指的是包中的术语conf org.apache.hadoop,不可用。它可能完全丢失了 来自当前类路径,或者类路径上的版本可能是 与编译时使用的版本不兼容 StreamingContext.class。实验室scala/气流/src 10号线scala问题


这里有什么我错过的吗?所有SparkContext都没有错误,但StreamingContext始终会收到此错误。

确保类路径上的hadoop版本与构建spark streaming jar所依据的版本匹配。spark streaming还可能存在一些期望由集群环境提供的依赖项;如果是这样,在eclipse中运行时,您需要手动将它们添加到类路径中。

确保类路径上的hadoop版本与构建spark streaming jar所依据的版本相匹配。spark streaming还可能存在一些期望由集群环境提供的依赖项;如果是这样,那么在eclipse中运行时,您需要手动将它们添加到类路径中。

我遇到了大致相同的问题。下面是我为scala/spark practice编写的scala类:

package practice.spark

import org.apache.spark.SparkContext._
import org.apache.spark._
import org.apache.spark.sql._

object SparkService {
  def sparkInit(sparkInstanceConfig: Configuration): SparkService = {
    val sparkConf = new SparkConf().setAppName(sparkInstanceConfig.appName)
    val instanceSpark = new SparkService(sparkConf)
    return instanceSpark
  }
}

class SparkService(sparkConf: SparkConf) {
  val sc = new SparkContext(sparkConf)
  val sql = new org.apache.spark.sql.SQLContext(sc)
}
在我的eclipse项目属性>Java构建路径>库中,我有jre8库、scala 2.11库、spark-core_2.11和spark-sql_2.11。我发现了错误

说明资源路径位置类型 加载类文件“SparkContext.class”时检测到缺少或无效的依赖项。无法访问包org.apache中的术语hadoop,因为缺少该术语(或其依赖项)。检查生成定义是否缺少或存在冲突的依赖项。(使用
-Ylog classpath
重新运行以查看有问题的类路径。)如果针对不兼容的org.apache版本编译了“SparkContext.class”,则完整重建可能会有所帮助。二进制分析新的未知Scala问题

然后,我将jar添加到Java构建路径中,解决了这个问题。我用的是那个罐子的最新版本


这个问题也可以通过使用gradle或其他一些构建工具来解决,这些工具将获取项目中使用的每个jar的所有依赖项。

我遇到了大致相同的问题。下面是我为scala/spark practice编写的scala类:

package practice.spark

import org.apache.spark.SparkContext._
import org.apache.spark._
import org.apache.spark.sql._

object SparkService {
  def sparkInit(sparkInstanceConfig: Configuration): SparkService = {
    val sparkConf = new SparkConf().setAppName(sparkInstanceConfig.appName)
    val instanceSpark = new SparkService(sparkConf)
    return instanceSpark
  }
}

class SparkService(sparkConf: SparkConf) {
  val sc = new SparkContext(sparkConf)
  val sql = new org.apache.spark.sql.SQLContext(sc)
}
在我的eclipse项目属性>Java构建路径>库中,我有jre8库、scala 2.11库、spark-core_2.11和spark-sql_2.11。我发现了错误

说明资源路径位置类型 加载类文件“SparkContext.class”时检测到缺少或无效的依赖项。无法访问包org.apache中的术语hadoop,因为缺少该术语(或其依赖项)。检查生成定义是否缺少或存在冲突的依赖项。(使用
-Ylog classpath
重新运行以查看有问题的类路径。)如果针对不兼容的org.apache版本编译了“SparkContext.class”,则完整重建可能会有所帮助。二进制分析新的未知Scala问题

然后,我将jar添加到Java构建路径中,解决了这个问题。我用的是那个罐子的最新版本


这个问题也可以通过使用gradle或其他一些构建工具来解决,这些工具将获取项目中使用的每个jar的所有依赖项。

看起来您的类路径中缺少一些hadoop依赖项。您使用的是哪个Spark发行版?二进制或本地构建的?看起来您的类路径中缺少一些hadoop依赖项。您使用的是哪个Spark发行版?二进制文件还是本地构建的?