Chúng tôi đang chạy lệnh spark-submit trên tập lệnh python sử dụng Spark để phát song song đối tượng trong Python bằng cách sử dụng Caffe. Bản thân tập lệnh chạy hoàn toàn tốt nếu chạy trong một tập lệnh chỉ Python, nhưng nó trả về lỗi nhập khi sử dụng nó với mã Spark. Tôi biết mã tia lửa không phải là vấn đề bởi vì nó hoạt động hoàn toàn tốt trên máy nhà của tôi, nhưng nó không hoạt động tốt trên AWS. Tôi không chắc chắn nếu điều này bằng cách nào đó đã làm với các biến môi trường, nó là như thể nó không phát hiện chúng.Các vấn đề về Spark với nhập khẩu bằng Python
Các biến môi trường được thiết lập:
SPARK_HOME=/opt/spark/spark-2.0.0-bin-hadoop2.7
PATH=$SPARK_HOME/bin:$PATH
PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
PYTHONPATH=/opt/caffe/python:${PYTHONPATH}
Lỗi:
16/10/03 01:36:21 WARN TaskSetManager: Lost task 0.0 in stage 0.0 (TID 0, 172.31.50.167): org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/worker.py", line 161, in main
func, profiler, deserializer, serializer = read_command(pickleSer, infile)
File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/worker.py", line 54, in read_command
command = serializer._read_with_length(file)
File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/serializers.py", line 164, in _read_with_length
return self.loads(obj)
File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/serializers.py", line 422, in loads
return pickle.loads(obj)
File "/opt/spark/spark-2.0.0-bin-hadoop2.7/python/lib/pyspark.zip/pyspark/cloudpickle.py", line 664, in subimport
__import__(name)
ImportError: ('No module named caffe', <function subimport at 0x7efc34a68b90>, ('caffe',))
Có ai biết tại sao điều này sẽ là một vấn đề?
Gói này từ Yahoo quản lý những gì chúng tôi đang cố gắng thực hiện bằng cách chuyển Caffe thành phụ thuộc jar và sau đó sử dụng lại nó trong Python. Nhưng tôi không tìm thấy bất kỳ tài nguyên nào về cách xây dựng và tự nhập nó.
https://github.com/yahoo/CaffeOnSpark
Có lẽ bạn có thể thử tải gói python bằng cách sử dụng '.gg' như được đề xuất [ở đây] (http: //stackoverflow.com/questions/24686474/shipping-python-modules-in-pyspark-to-other-nodes) –
Đã thử rằng, không hoạt động. Tôi đã googled rằng dường như tôi phải xuất khẩu nó như là một gói jar, nhưng tôi không biết làm thế nào để xây dựng nó và sau đó nhập nó vào Python. – alfredox
Nếu bạn xây dựng caffe từ nguồn, bạn có thử thêm các thư viện caffe vào 'LD_LIBRARY_PATH' theo cách thủ công không? Bạn đã thử nhập khẩu caffe từ một thiết bị đầu cuối python? – ar7