2014-12-02 17 views
7

Kiedy próbuję uruchomić mój kod rzuca to Exception:nie można przetworzyć Mistrza URL: 'iskra: http: // localhost: 18080'

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

To jest mój kod:

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();}} 

Każdy pomysł, jak mogę rozwiązać ten problem?

Odpowiedz

7

Problem polega na podaniu 2 schematów w adresie URL przekazanym do SparkConf.setMaster().

Schemat to spark, więc po spark nie trzeba dodawać http. Zobacz javadoc z SparkConf.setMaster() po więcej przykładów.

Głównym adresem URL, którego powinieneś używać, jest "spark://localhost:18080". Zmień tę linię:

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

dzięki za odpowiedź, kiedy to zmienić i uruchomić go ponownie rzuca kolejny wyjątek: Could nie łączy się z akka.tcp: // sparkMaster @ localhost: 18080: akka.remote.EndpointAssociationException: Stowarzyszenie nie powiodło się z [akka.tcp: // sparkMaster @ localhost: 18080] – Anas

+0

@Anas Jest to najprawdopodobniej dlatego, że nie zacząłeś serwer lub znajduje się na innym porcie niż podany ('18080'). – icza

+0

dzięki za pomoc, kiedy trochę się zmienię w kodzie i użyłem portu 8080 ** String host = "LocalHost"; SparkConf conf = new SparkConf(). SetAppName ("App_name") .setMaster ("local [4]") .set ("spark.driver.host", host) .set ("spark.driver.port", " 8080 "); ** podaje mi to INFO: ** (INFO twitter4j.TwitterStreamImpl: Połączenie ustanowione) ** , ale nadal nie widzę tweetów !! – Anas

3

Standardowym portem Master to 7077 nie 18080. Może można spróbować 7077.