2014-12-02 137 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.

相關問題