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

o4tp2gmn  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(516)

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

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

        sc = new JavaSparkContext(conf);

现在我想澄清的是,我使用的是sparkversion2.1.1,java代码在windows10上,服务器在vmbox上运行。我在虚拟机中禁用了防火墙,可以访问urlhttp://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)

有人能帮忙吗?

t5zmwmid

t5zmwmid1#

您需要将一些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);
ou6hu8tu

ou6hu8tu2#

有点晚了,但是对于那些现在遇到这种情况的人来说:这可能是由于用于spark-core或spark-sql的maven版本与服务器上使用的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主节点日志来诊断不兼容问题。他们应该提到一些类似于 spark local class incompatible stream classdesc serialversionuid 我希望这对一些人还是有用的!

相关问题