无法用Java启动火花

时间:2015-01-29 18:55:34

标签: java eclipse memory apache-spark

每次运行我的应用程序时都会出现此错误:

SparkConf sparkConf = new SparkConf().setAppName(new String("New app"));
sparkConf.setMaster("spark://localhost:7077");
JavaSparkContext sc = new JavaSparkContext(sparkConf);

JavaRDD<String> file = sc.textFile("content/texas.content");

错误:

15/01/29 19:45:53 INFO scheduler.TaskSchedulerImpl: Adding task set 1.0 with 2 tasks
15/01/29 19:46:08 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory
15/01/29 19:46:12 INFO client.AppClient$ClientActor: Connecting to master spark://localhost:7077...
15/01/29 19:46:12 WARN client.AppClient$ClientActor: Could not connect to akka.tcp://sparkMaster@localhost:7077: akka.remote.EndpointAssociationException: Association failed with [akka.tcp://sparkMaster@localhost:7077]
15/01/29 19:46:12 WARN client.AppClient$ClientActor: Could not connect to akka.tcp://sparkMaster@localhost:7077: akka.remote.EndpointAssociationException: Association failed with [akka.tcp://sparkMaster@localhost:7077]
15/01/29 19:46:12 WARN client.AppClient$ClientActor: Could not connect to akka.tcp://sparkMaster@localhost:7077: akka.remote.EndpointAssociationException: Association failed with [akka.tcp://sparkMaster@localhost:7077]
15/01/29 19:46:12 WARN client.AppClient$ClientActor: Could not connect to akka.tcp://sparkMaster@localhost:7077: akka.remote.EndpointAssociationException: Association failed with [akka.tcp://sparkMaster@localhost:7077]
15/01/29 19:46:23 WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient memory

我该怎样摆脱它? 谢谢!

5 个答案:

答案 0 :(得分:2)

sparkConf.setMaster("local");

使用一个线程在本地运行。

答案 1 :(得分:0)

尝试使用主机名而不是localhost。

它对我有用。

答案 2 :(得分:0)

评论旧问题:),但是碰到了同样的问题。

所以,值得一提。

- 盛源路是对的。

请参阅Spark的文档。

http://spark.apache.org/docs/latest/programming-guide.html#linking-with-spark

&#34; Spark程序必须做的第一件事是创建一个JavaSparkContext对象,它告诉Spark如何访问集群。要创建SparkContext,首先需要构建一个SparkConf对象,其中包含有关应用程序的信息。

SparkConf conf = new SparkConf()。setAppName(appName).setMaster(master); JavaSparkContext sc = new JavaSparkContext(conf); appName参数是应用程序在集群UI上显示的名称。 master是Spark,Mesos或YARN群集URL,

  

或以本地模式运行的特殊“本地”字符串。

实际上,在群集上运行时,您不希望在程序中对master进行硬编码,而是使用spark-submit启动应用程序并在那里接收它。但是,对于本地测试和单元测试,您可以传递“local”以在进程中运行Spark。 &#34;

答案 3 :(得分:0)

下载新版本的Apache-Spark,一切都会正常。

答案 4 :(得分:0)

在Java源代码中使用完全限定的dns名称,而不是使用localhost。

所以server1.domain.com:7077而不是localhost:7077

注意:您仍然可以在命令行上使用--master spark:// localhost:7077进行spark-submit