2016-03-19 7 views
2

Erstens, ich weiß, diese Frage wurde schon einmal gestellt, aber sie Antworten scheinen nicht auf meine Situation zutreffen.Apache Spark Standalone Cluster Initial Job akzeptiert keine Ressourcen

Ich benutze Digital Ocean, ich habe drei Server (Ubuntu 14.04 mit 2 Kernen, 2GB RAM, 40Gb Festplatte), einen Master und zwei Slaves. Sie wurden alle mit Spark 1.6.1 installiert, das aus der Quelle kompiliert wurde. Sie alle konnten aufgrund fehlender Speicherkapazität nicht bauen, also konfigurierte ich jedes mit 16Gb Swap und dann war der Build in Ordnung.

begann ich mit dem Standalone-Server auf dem Master durch explizit den Host an die öffentliche IP-Adresse Einstellung mit:

./sbin/start-master.sh -h 104.236.221.106 

, dass die tatsächliche IP-Adresse ist - Sie http://104.236.221.106:8080/ besuchen können den Status des Clusters zu sehen. Auf jeden Fall wurden die Sklaven beginnen mit:

./sbin/start-slave.sh spark://104.236.221.106:7077 -m 10g 

Da Funken nur 2 GB Systemspeicher erkannt es nur 1 Gb wurde Grabben, so sagte ich ausdrücklich es mehr zu verwenden, so würde das System Swap nutzen, wenn nötig.

am webportal Sehen, ich sehe es berichtet, gibt es 2 Arbeiter mit insgesamt 4 Kernen im Cluster, etc ...

Snapshot of the portal

Alles scheint, wie es große Arbeits werden sollte, so starte ich die shell für interaktive Arbeit vom Master-Server mit:

./bin/spark-shell --master spark://104.236.221.106:7077 --executor-memory 4g 

Ziel viel Speicher zu haben sein. Es startet und gibt mir die Kommandozeile, also setze ich einen Wert val NUM_SAMPLES=10000 - keine große Zahl, aber etwas und dann versuche ich, den Beispielcode von Apache zu schätzen Pi.

val count = sc.parallelize(1 to NUM_SAMPLES).map{i => 
    val x = Math.random() 
    val y = Math.random() 
    if (x*x + y*y < 1) 1 else 0 
}.reduce(_ + _) 

und was ich aus ihm heraus ist:

[Stage 0:>               (0 + 0)/2]16/03/19 07:23:57 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 
16/03/19 07:24:12 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 
16/03/19 07:24:27 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 
[Stage 0:>               (0 + 0)/2]16/03/19 07:24:42 WARN TaskSchedulerImpl: 
    Initial job has not accepted any resources; 
    check your cluster UI to ensure that workers are registered 
    and have sufficient resources 

So ist dies nicht sinnvoll für ein paar Gründe zu machen. Erstens weiß ich, dass der Cluster existiert, weil ich ihn im Webportal sehen kann. Ich sehe den Job, der mit der angeforderten Speicherzuweisung erstellt wurde. Ich sehe in auf den Sklaven, dass Java Sachen macht, die mich denken lassen, dass sie Arbeit erhielten. Schließlich ist die Aufgabe, nach der ich frage, dumm einfach, es sollte fast nichts verbrauchen.

Was habe ich bei der Konfiguration falsch gemacht/wie ich diesen Code ausführen möchte?

Ich bin auch Beispiele für die Meister und Arbeiter-Protokolle:

Sozialarbeiterin: http://pastebin.com/xwnBMaKQ

MASTER: http://pastebin.com/0Ja0KD9k

Es sieht aus wie die Arbeiter immer noch versuchen, Adresse eine private IP-Hit trotz starten der Master mit einer expliziten IP-Adresse und (nach einiger Hilfe) auch die Arbeiter mit ihrer öffentlichen IP-Adresse starten.

+0

Also haben Sie das Problem gelöst? – mauriciojost

+0

Ja, obwohl ich versucht habe, Ihre Antwort so zu bearbeiten, dass sie die notwendigen Änderungen zum Starten des Clusters enthält, da mein Prozess nicht mit Ihrer Lösung funktioniert. Edit wurde anscheinend abgelehnt. – Mark

Antwort

2

Haben Sie versucht, explizit private IP-Adressen zu verwenden? Ich würde zuerst sicherstellen, dass Sie Ihren Cluster in einen konsistenten Zustand versetzen können, bevor Sie sich Gedanken über den Zugriff von der öffentlichen IP-Adresse machen.

Verwandte Themen