0

Perl スクリプトを Hadoop ストリーミングのマッパーおよびリデューサーとして使用する場合、perl モジュールの依存関係を管理する方法。

perl マッパー & レデューサー スクリプトで "Net::RabbitMQ" を使用したいと考えています。

perl/hadoop ストリーミングで、DistributedCache と同様の依存関係を処理する標準的な方法はありますか (Hadoop Java MR の場合)

4

1 に答える 1

0

依存関係を処理するには、カスタム ライブラリ パスを指定する方法や、 PAR::Packerを使用して Perl アプリケーションのパック バイナリを作成する方法など、いくつかの方法があります。Hadoop::Streaming PODの「例」セクションには、これらのタスクを実行する方法の例がいくつかあり、作成者はプロセスの適切な説明と、依存関係を処理するさまざまな方法に関する考慮事項を含めています。Hadoop::Streaming ドキュメントで提供されている Perl 依存関係の処理に関する提案は、そのモジュールに固有のものではないことに注意してください。

以下は、Hadoop::Streaming のドキュメントからの抜粋です (前述のように、詳細な例が記載されています)。

すべての perl モジュールを各 Hadoop クラスタ マシンにインストールする必要があります。これは、大規模な設備にとっては課題であることがわかります。local::lib で制御された perl ディレクトリがあり、これをすべての Hadoop ボックス (/apps/perl5) の固定の場所にプッシュして、最新の状態に保ち、システム イメージに含めています。以前は、PAR::Packer (pp) を使用してスタンドアロンの perl ファイルを作成していましたが、-file オプションを使用した jar のサイズを除けば、非常にうまく機能していました。スタンドアロン ファイルを hdfs に配置し、-cacheFile オプションを使用して jar に含めることができます。

于 2013-02-26T12:00:37.407 に答える