master を localhost に設定すると、このコードは完璧に動作します。この問題は、2 つのワーカー ノードを持つクラスターで送信すると発生します。
すべてのマシンに同じバージョンの python とパッケージがあります。また、目的の python バージョン、つまり 3.5.1 を指すようにパスを設定しました。マスター ssh セッションで Spark ジョブを送信したとき。次のエラーが表示されます-
py4j.protocol.Py4JJavaError: z:org.apache.spark.api.python.PythonRDD.runJob の呼び出し中にエラーが発生しました。: org.apache.spark.SparkException: ステージの失敗によりジョブが中止されました: ステージ 2.0 のタスク 0 が 4 回失敗しました。最近の失敗: ステージ 2.0 でタスク 0.3 が失われました (TID 5、.c..internal): org.apache. spark.api.python.PythonException: トレースバック (最新の呼び出しが最後): ファイル "/hadoop/yarn/nm-local-dir/usercache//appcache/application_1469113139977_0011/container_1469113139977_0011_01_000004/pyspark.zip/pyspark/worker.py" 行98、メインコマンド = pickleSer._read_with_length(infile) ファイル "/hadoop/yarn/nm-local-dir/usercache//appcache/application_1469113139977_0011/container_1469113139977_0011_01_000004/pyspark.zip/pyspark/serializers.py"、164 行目、_length_read_with_length return self.loads(obj) ファイル "init .py"、25 行目、インポート numpy の ImportError: No module named 'numpy'
人々が自分のワーカー ノードにアクセスできない他の投稿を見ました。そうです。他のワーカー ノードでも同じメッセージが表示されます。環境設定が欠落しているかどうかわかりません。どんな助けでも大歓迎です。