无法使用java初始化spark上下文

时间:2017-08-06 13:42:13

标签: java hadoop apache-spark

我正在尝试使用spark的简单工作计数程序,但是当我尝试初始化spark上下文时它失败了。 以下是我的代码

conf = new SparkConf(true).
                setAppName("WordCount").
                setMaster("spark://192.168.0.104:7077");

        sc = new JavaSparkContext(conf);

现在我想澄清的一些事情我正在使用Spark版本2.1.1,我的java代码在Windows 10上,我的服务器在VM框上运行。 我在VM中禁用了防火墙,可以从Windows访问URL http://192.168.0.104:8080/

然而,在运行代码

时,我得到的是堆栈跟踪
17/08/06 18:44:15 INFO SparkUI: Bound SparkUI to 0.0.0.0, and started at http://192.168.0.103:4040
17/08/06 18:44:15 INFO StandaloneAppClient$ClientEndpoint: Connecting to master spark://192.168.0.104:7077...
17/08/06 18:44:15 INFO TransportClientFactory: Successfully created connection to /192.168.0.104:7077 after 41 ms (0 ms spent in bootstraps)
17/08/06 18:44:15 WARN StandaloneAppClient$ClientEndpoint: Failed to connect to master 192.168.0.104:7077
org.apache.spark.SparkException: Exception thrown in awaitResult
    at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:77)
    at org.apache.spark.rpc.RpcTimeout$$anonfun$1.applyOrElse(RpcTimeout.scala:75)
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33)
    at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59)
    at org.apache.spark.rpc.RpcTimeout$$anonfun$addMessageIfTimeout$1.applyOrElse(RpcTimeout.scala:59)

有人能帮忙吗?

2 个答案:

答案 0 :(得分:0)

您需要将一些Spark类导入到您的程序中。添加以下行:

import org.apache.spark.api.java.JavaSparkContext
import org.apache.spark.api.java.JavaRDD
import org.apache.spark.SparkConf

SparkConf conf = new SparkConf().setAppName("WordCount").setMaster("local");
JavaSparkContext sc = new JavaSparkContext(conf);

答案 1 :(得分:0)

有点晚了,但对于那些现在正在运行的人来说:这可能是由于用于Spark Core的Maven版本或Spark SQL与服务器上使用的Spark版本不兼容造成的。目前,Spark 2.4.4似乎与以下Maven设置兼容:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.11</artifactId>
    <version>2.3.4</version>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>2.3.4</version>
</dependency>

不兼容问题可以通过查看Spark Master节点日志来诊断。他们应该提及spark local class incompatible stream classdesc serialversionuid

我希望这对某些人还是有用的!