Meine Python-App auf Garn/Funken erkennt die Anforderungen.TXT-Datei nicht zu einem virtualenv auf den Arbeiter Knoten erstellen, und weiterhin die globale Umgebung zu verwenden. Jede Hilfe, um dies zu beheben, wäre sehr willkommen.Running Python in Garn/Funke Cluster-Modus mit virtualenv
Spark-Version: 2.0.1
Skript einreichen, nachdem pip freeze > requirements-test.txt
innerhalb der virtuellen Umgebung ausgeführt wird, die ich an den Knoten neu erstellen möchten:
/usr/bin/spark-submit --master yarn --deploy-mode client --conf spark.pyspark.virtualenv.enabled=true --conf spark.pyspark.virtualenv.type=native --conf spark.pyspark.virtualenv.requirements=/mnt/py_env/requirements-test.txt --conf spark.pyspark.virtualenv.bin.path=/mnt/anaconda2/bin/virtualenv --conf spark.pyspark.python=/mnt/py_env/test/bin/python /home/hadoop/python/spark_virtualenv.py
Meine anforderungs test.txt-Datei:
dill==0.2.7.1
Lifetimes==0.8.0.0
numpy==1.13.1
pandas==0.20.3
python-dateutil==2.6.1
pytz==2017.2
scipy==0.19.1
six==1.10.0
Mein /home/hadoop/python/spark_virtualenv.py
:
from pyspark import SparkContext
#import lifetimes
if __name__ == "__main__":
sc = SparkContext(appName="Simple App")
import numpy as np
sc.parallelize(range(1,10)).map(lambda x : np.__version__).collect()
print "//////////// works! //////////"
#print lifetimes.__version__
print np.__file__
Vom Ausgang, ich sehe, dass es nach wie vor nur Paket meiner globale numpy importiert und nicht den in der virtuellen Umgebung:
//////////// works! //////////
/mnt/anaconda2/lib/python2.7/site-packages/numpy/__init__.pyc
PS: Ich anaconda2 auf allen Knoten meines Cluster installiert habe
ein weiterer Punkt: Wenn meine Funken einreichen Option --deploy-mode cluster
geändert wird, dann ist der Ausgang anders:
//////////// works! //////////
/usr/local/lib64/python2.7/site-packages/numpy/__init__.pyc