2016-04-19 2 views
0

Ich verwende RedHat 6.8 für meine YARN-Cluster-Knoten, und es verwendet Python 2.6.6. Um Python 2.7 in RedHat zu bekommen, benutzt man Software Collections. Um eine Software-Sammlung zu aktivieren, muss scl aktiviert werden. Python-Version zum Beispiel drucken tut scl enable python27 'python -V'xboost dmlc-submit isst Befehle quotes (benötigt, um Python-Job über scl enable auszuführen)

Problem ist, wenn ich versuche, meine Python Job GARN einreichen wie folgt

dmlc-submit --cluster=yarn scl enable python27 'python -V' 

Es scheint, die Zitate zu essen und erzeugt diesen Fehler (statt der erwarteten Python 2.7.8):

Unable to open /etc/scl/prefixes/python! 

dass der gleiche Ausgang ist wird, wenn auf jeder Maschine an der bash Aufforderung wie folgt vorgehen

scl enable python27 python -V 

Ich versuche herauszufinden, wie man argparse in das Durchlassen von dies zu täuschen.

Antwort

0

Blick in argparser (welcher dmlc-core und xgboost verwenden) Quellcode versuchen, herauszufinden, alle möglichen Escaping-Mechanismus. Konnte keine finden, hat aber herausgefunden, dass dmlc-submit die Job-Submission-Node-Umgebung aufnimmt und auf jedem der Ausführungsknoten neu erstellt. Blick auf die scl enable und /opt/rh/python27/enable Skript und realisiert LD_LIBRARY_PATH ist der wichtigste. PATH ist auch, aber aus irgendeinem Grund ist es nicht tragen über so dass ich jetzt vollständigen Pfad zu meinem SCL bereitgestellt python27

folgt jetzt glücklich läuft auf meinem GARN 2.7.1 Cluster

cd xgboost 
dmlc-core/tracker/dmlc-submit --cluster=yarn --num-workers=9 --worker-cores=4 /opt/rh/python27/root/usr/bin/python tests/distributed/test_basic.py 
+0

Hallo Edi, ich traf ein Problem mit xgboost. Ich habe "Kein Modul namens xgboost" beim Ausführen von Beispiel unter dem Ordner 'xgboost/tests/distributed/runtests.sh'. Ich hätte gedacht, dass '--files xgboost.egg' als Parameter von 'dmlc-core' hinzugefügt werden sollte. Ich glaube, es gibt einen besseren Weg, das xgboost-Modul zum Knoten von Clustern hinzuzufügen. Kannst du mir sagen, wie du es gemacht hast, vielen Dank! – LTzycLT

+0

Wenn Sie xgboost herunterladen, gibt es dort einen Python-Paket-Ordner - mit einem README mit einer Reihe von Installationsoptionen, "pip install xgboost" ist eins, und "python setup.py install" von diesem Ordner ist ein anderer. Das ist die, die ich verwendet habe - auf jedem Knoten des Clusters. Natürlich können Sie das nur tun, nachdem Sie die gemeinsame Xgboost-Bibliothek selbst erstellt und installiert haben. –

+0

Vielen Dank! Ich dachte früher, dass die Verwendung von xgboost mit dmlc-core wie pyspark ist, welches die funkenrelevante Python-Bibliothek automatisch in den Treiber auf dem Cluster kopiert. Jetzt scheint es so, als müsste ich die xgboost-Bibliothek manuell erstellen und die ausführbare Datei damit übermitteln. – LTzycLT

Verwandte Themen