0

zipファイルを使用してhadoopストリーミングジョブを実行し、参照されているPythonモジュールを保存する手法(stackoverflow)を見てきました。

ジョブ実行のマッピングフェーズ中にエラーが発生しました。私はそれがzipされたモジュールのロードに関連しているとかなり確信しています。

スクリプトをデバッグするために、コマンドラインパイプを使用してsys.stdin / sys.stdoutからマッパーとレデューサーにデータセットを実行したので、次のようになります。

ヘッドinputdatafile.txt| ./mapper.py | 並べ替え-k1,1| ./reducer.py

結果は素晴らしく見えます。

ただし、これをHadoopで実行すると、いくつかの問題が発生し始めます。つまり、マッパーとレデューサーが失敗し、Hadoopジョブ全体が完全に失敗します。

私のzip形式のモジュールファイルには*.pycファイルが含まれています-これはこのことに影響しますか?

また、Hadoopストリーミングを使用したマップ/縮小プロセス中に生成されたエラーはどこにありますか?

-fileコマンドライン引数を使用して、zip形式のモジュールが配置されている場所とマッパーおよびレデューサースクリプトが配置されている場所をhadoopに通知しました。

仕事で使用されるマッパーとリデューサーの数を増やすために、クレイジーな構成オプションを実行していません。

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

0

send_tokenizeのソースコードを確認すると、nltk.sent_tokenizeとnltk.tokenize.sent_tokenizeのメソッド/関数がピクルスファイル(パンクトークン化を行うために使用されるファイル)に依存しているように見えます。

これはHadoopストリーミングであるため、Hadoopジョブのjarに追加されたzip形式のコードモジュールにそのpickleファイルを配置する場所/方法を理解する必要があります。

結論は?RegexpTokenizerクラスを使用して、文および単語レベルのトークン化を行うことをお勧めします。

于 2012-09-23T22:43:36.897 に答える