簡體   English   中英

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

[英]Unable to initialize spark context using java

我正在嘗試使用 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)

有人可以幫忙嗎?

有點晚了,但對於那些現在遇到這個問題的人:這可能是由於用於 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 Master 節點日志來診斷不兼容問題。 他們應該提到一些類似於spark local class incompatible stream classdesc serialversionuid

我希望這對某些人仍然有用!

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM