Hadoopストリーミングで依存関係を管理しますか?
-
30-09-2019 - |
質問
簡単なHadoopストリーミングの質問があります。 Pythonストリーミングを使用していて、マッパー/リデューサーが必要とするがデフォルトではインストールされていないPythonパッケージがある場合、すべてのHadoopマシンにそれらをインストールする必要がありますか、それともそれらを送信する何らかのシリアル化がありますか?リモートマシン?
解決
タスクボックスにインストールされていない場合は、-Fileで送信できます。パッケージまたはその他のディレクトリ構造が必要な場合は、Zipfileを送信できます。これがHaddop 0.17の呼び出しです:
$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-0.17.0-streaming.jar -mapper mapper.py -reducer reducer.py -input input/foo -output output -file /tmp/foo.py -file /tmp/lib.zip
ただし、警告については、この問題を参照してください。
他のヒント
ダンボを使用する場合は、-libeggを使用して卵ファイルを配布し、Pythonランタイムを自動構成できます。
https://github.com/klbostee/dumbo/wiki/short-tutorial#wiki-eggs_and_jarshttps://github.com/klbostee/dumbo/wiki/configuration-files
所属していません StackOverflow