2014-12-02 97 views
7

当我试图运行我的代码,它抛出这个Exception无法解析主网址: '火花:HTTP://本地主机:18080'

Exception in thread "main" org.apache.spark.SparkException: Could not parse Master URL:spark:http://localhost:18080 

这是我的代码:

SparkConf conf = new SparkConf().setAppName("App_Name").setMaster("spark:http://localhost:18080").set("spark.ui.port","18080"); 
JavaStreamingContext ssc = new JavaStreamingContext(sc, new Duration(1000)); 
String[] filet=new String[]{"Obama","ISI"}; 

JavaReceiverInputDStream<Status> reciverStream=TwitterUtils.createStream(ssc,filet); 
JavaDStream<String> statuses = reciverStream.map(new Function<Status, String>() { 
    public String call(Status status) { return status.getText(); } 
    } 
    ); 
ssc.start(); 
ssc.awaitTermination();}} 

任何想法如何解决这个问题?

回答

7

问题是,您在传递给SparkConf.setMaster()的URL中指定了2个模式。

spark是模式,因此您不需要在spark后添加http。有关更多示例,请参阅SparkConf.setMaster()的javadoc。

所以你应该使用的主URL是"spark://localhost:18080"。改变这一行:

SparkConf conf = new SparkConf().setAppName("App_Name") 
    .setMaster("spark://localhost:18080").set("spark.ui.port","18080"); 
+0

感谢响应,当我改变它,再运行它,他抛出另一个异常: 莫非没有连接到akka.tcp:// sparkMaster @ localhost:18080:akka.remote.EndpointAssociationException:关联失败,[akka.tcp:// sparkMaster @ localhost:18080] – Anas 2014-12-02 13:47:45

+0

@Anas这很可能是因为您还没有启动一个服务器或它在一个不同于你指定的端口('18080')的端口上。 – icza 2014-12-02 14:00:17

+0

感谢您的帮助,当我在代码中改变了一点我使用的端口8080 ** String host =“LocalHost”; ()“设置为”本地[4]“).set(”spark.driver.host“,主机).set(”spark.driver.port“,” 8080“); ** 他给我这个信息: **(INFO twitter4j.TwitterStreamImpl:连接建立)** 但我仍然看不到推文! – Anas 2014-12-02 15:02:02

3

硕士的标准端口是7077不是18080.也许你可以试试7077.

相关问题