Ich übergebe einen Spark-Auftrag im Cluster-Bereitstellungsmodus. Ich erhalte die Einreichungs-ID in meinem Code. Um Spark Rest Api zu verwenden, benötigen wir applicationId. Wie können wir also Anwendungs-ID via Submission ID erhalten programmatischwie Anwendungs-ID von Übermittlungs-ID oder Treiber-ID programmgesteuert erhalten
Antwort
i auch gleiche Problem haben, ich glaube,
Web-UI (http://spark_hostIp:port/8080) Crawlen ~
bekommen ApplicationID
eine der Möglichkeiten
Dieser Beitrag ist kein tatsächlicher Versuch, die Frage zu beantworten. Bitte beachten Sie [StackOverflow funktioniert nicht wie ein Diskussionsforum] (http://stackoverflow.com/tour), es ist eine Q & A-Seite, wo jeder Beitrag entweder eine Frage oder eine Antwort auf eine Frage ist. Beiträge können auch [Kommentare] (http://stackoverflow.com/help/privileges/comment) - kleine Sätze wie diesen - haben, die verwendet werden können, um einen Autor zu kritisieren oder um Klärung zu bitten. Dies sollte entweder ein Kommentar oder eine [neue Frage] sein (http://stackoverflow.com/questions/ask) –
Um diese Frage zu beantworten, wird angenommen, dass bekannt ist, dass die Zertifikats-ID mit der folgenden Funktion erhalten werden kann:
scala> spark.sparkContext.applicationId
Wenn Sie wollen, ist es ein wenig anders. Über die Rest-API ist es möglich, Befehle zu senden. Zum Beispiel wie im folgenden nützlichen Tutorial über die Apache REST API: http://arturmkrtchyan.com/apache-spark-hidden-rest-api Eine andere Lösung ist es, es selbst zu programmieren. Sie können einen Funken einreichen in der folgenden Art an:
$SPARK_HOME/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://my-cluster:7077 \
--deploy-mode cluster \
/path/to/examples.jar 1000
Hier im Hintergrund des Terminals Sie die Protokolldatei erzeugt wird, sehen sollte. In der Protokolldatei befindet sich die Anwendungs-ID (App_ID). Die $SPARK_HOME
ist hier die Umgebungsvariable, die zu dem Ordner führt, in dem sich der Funke befindet.
Mit zum Beispiel Python ist es möglich, die App_ID in dem unten beschriebenen Code zu erhalten. Zuerst erstellen wir eine Liste, um den Befehl mit Python subprocess
Modul zu senden. Das Unterprozessmodul hat die Möglichkeit, eine PIPE zu erstellen, aus der Sie die Protokollinformationen extrahieren können, anstatt die Standardoption von Spark zu verwenden, um sie an das Terminal zu senden. Stellen Sie sicher, nach dem Popen communicate()
zu verwenden, um das Warten auf das Betriebssystem zu verhindern. Dann teilen Sie es in Linien und kratzen Sie es durch, um die App_ID
zu finden. Das Beispiel finden Sie unten werden können:
submitSparkList=['$SPARK_HOME/bin/spark-submit','--class','org.apache.spark.examples.SparkPi','--master spark://my-cluster:7077','--deploy-mode cluster','/path/to/examples.py','1000']
sparkCommand=subprocess.Popen(submitSparkList,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
stdout, stderr = sparkCommand.communicate()
stderr=stderr.splitlines()
for line in stderr:
if "Connected to Spark cluster" in line: #this is the first line from the rest API that contains the ID. Scrape through the logs to find it.
app_ID_index=line.find('app-')
app_ID=line[app_ID_index:] #this gives the app_ID
print('The app ID is ' + app_ID)
Nach dem Python führen diese enthält eine Warnung, wenn nicht kommunizieren() -Funktion: https://docs.python.org/2/library/subprocess.html
Diese Warnung wird Deadlock, wenn stdout = PIPE und/oder stderr = PIPE und der untergeordnete Prozess generieren genügend Output für eine Pipe, sodass sie blockiert, während sie darauf wartet, dass der OS-Pipe-Puffer mehr Daten akzeptiert. Verwenden Sie communicate(), um dies zu vermeiden.
- 1. Wie programmgesteuert SVN Revisionsnummer erhalten?
- 2. Link-Geschwindigkeit programmgesteuert erhalten?
- 3. Wie Akzent Farbe programmgesteuert erhalten?
- 4. Programmgesteuert Google Suchergebnisse erhalten
- 5. Verwenden von LUIS/IntentDialogs - Wie Sie die Äußerung programmgesteuert erhalten
- 6. Android - Wie parentalActivityName Attributwert programmgesteuert erhalten?
- 7. Wie programmgesteuert Transaktionsmanager in einem Thread erhalten?
- 8. So erhalten Sie Laufzeitversion von Silverlight programmgesteuert
- 9. Wie kann man die laufende Version von Selen, Selen-Server oder Selen-Webdriver programmgesteuert erhalten?
- 10. Wie programmgesteuert erhalten cellID von IPAQ Pocket PC
- 11. Wie programmgesteuert füllen oder erstellen filer.fields.image.FilerImageField?
- 12. Programmgesteuert erhalten Sie die Versionsnummer einer DLL
- 13. Wie programmgesteuert Dowload Initiator?
- 14. Android wie FPS einer Ansicht oder Anwendung programmgesteuert zu messen
- 15. Maximaler Wert von Fließkomma in SQL programmgesteuert erhalten
- 16. Wie erhalten Sie Amazon Seller Central-Bestellungen programmgesteuert?
- 17. Paket-ID programmgesteuert in Swift erhalten?
- 18. Wie programmgesteuert (C/C++) erhalten Ländercode auf Linux?
- 19. Wie programmgesteuert SVN Revisionsbeschreibung und Autor in C# erhalten?
- 20. Wie kann eine Firefox-Erweiterung programmgesteuert eine eigene Versionsnummer erhalten?
- 21. Wie programmgesteuert Informationen zu einem APNS Push-Zertifikat erhalten?
- 22. Wie programmgesteuert programmgesteuert zu einer programmgesteuert erstellten UIView hinzugefügt werden?
- 23. Wie Knotenmodule programmgesteuert aktualisieren
- 24. Microsoft Loopback-Adapter programmgesteuert von VBS (oder C#/VB) installieren
- 25. Generieren von Verläufen programmgesteuert?
- 26. Erhalten Iterator von Zeiger oder Referenz
- 27. Wie programmgesteuert hinzufügen/entfernen?
- 28. Javascript erhalten HTML oder Text von div
- 29. Spielen Sie Sound entweder von externem oder internem Lautsprecher programmgesteuert
- 30. Option zum Senden von SMS mit Sim1 oder Sim2 programmgesteuert
Mögliches Duplikat von [So extrahieren Sie die Anwendungs-ID aus dem PySpark-Kontext] (http://stackoverflow.com/questions/30983226/how-to-extract-application-id-from-the-pyspark-context) – Bacon
Wie? Erhalten Sie die Submission ID im Programm? Ich habe App-ID im Programm und brauche die Submission ID. –