Ich habe einen Vier-Knoten-Funke-Cluster. Ein Knoten ist sowohl Master als auch Slave, andere drei Slave-Knoten. Ich habe eine Beispielanwendung geschrieben, die Datei lädt und einen Datenrahmen erstellt und einige Spark-SQL ausführt. Wenn ich die Anwendung vorlege wie unten vom Master-Knoten, es produziert Ausgabe: -Laden einer Datei in Spark im Standalone-Cluster
./spark-submit /root/sample.py
Aber wenn ich wie unten mit Master vorlege, heißt es „Datei nicht Fehler nicht existiert
./spark-submit --master spark://<IP>:PORTNO /root/sample.py
.
ich bin ein RDD von Beispiel-Textdatei zu erstellen: -.
lines = sc.textFile("/root/testsql.txt");
muss ich die Datei auf allen Knoten kopieren müssen ?? Wie es für die Produktionssysteme funktionieren wird, wenn zB haben einige CDRS zu verarbeiten, woher sollte ich diese CDRS erhalten.
..ich bin etwas verwirrt ..wenn ich eine Datei von 1000 Zeilen habe und ich werde es auf alle Standorte kopieren..do alle Sklaven arbeiten auf der gleichen Datei? Wie die Last zwischen ihnen ausgewogen ist ... Auch wenn ich einen geteilten Speicherort habe, wo ich 100 CDR-Dateien behalten werde..wie werden diese Dateien unter Sklaven verteilt? –
Nun, ich habe noch nie eine Datei auf jeden Knoten kopiert, idealerweise sollten Sie dieselbe Datei für alle Knoten zugänglich machen, wie ich es zuvor erklärt habe. Bezüglich des Verteilens funktioniert es auf der Partition. Grundsätzlich denke es so, wenn es 1000 Zeilen in der Datei gibt und du sagst explizit lins.repartition (10). Es wird 10 parallele Partition von jeweils 100 Zeilen erstellen und mit 4 Arbeitern 4 von ihnen gleichzeitig verarbeiten. Wenn Sie keine Partition angeben, verwendet sie ihren internen Algorithmus zur Berechnung der Partitionsanzahl. –
..danke für die Erklärung .. –