1

簡単な質問:

Pig LOAD ステートメントのメモリ制限はどのくらいですか?

より詳細な質問:

利用可能な物理リソース (ディスク、RAM、CPU) を、Pig LOAD ステートメントが処理できるディレクトリの最大サイズに関連付ける方法はありますか?

シナリオ:

研究プロジェクトは、以下にコピーされた 1 つの Pig LOAD ステートメントで、合計サイズが 891 GB の 12,000 以上のファイルを含むディレクトリをロードしようとする Pig スクリプトを使用しています。ファイルは、生のテキストで Web ページのコレクションを記述する gzip された WAT ファイルです。ジョブを実行すると、毎回クラスターがクラッシュ/ハング/フリーズするように見えます。私たちは皆 Hadoop に慣れていないので、最終的にコードを確認できるようになるまで、疑いはリソースと構成にありました。

-- load data from I_WATS_DIR 
Orig = LOAD '$I_WATS_DIR' USING org.archive.hadoop.ArchiveJSONViewLoader('Envelope.ARC-Header-    Metadata.Target-URI','var2...','var3...','var4...{1,2,3,4} as
(src:chararray,timestamp:chararray,html_base:chararray,relative:chararray,path:chararray,text:chararray,alt:chararray); 

詳細:

集まる

1 フロント エンド ノード、16 コア、64 GB RAM、128 GB スワップ、NameNode

3 つの計算ノード、16 コア、128GB RAM、128GB スワップ、DataNode

テスト ジョブ 1

上記と同じスクリプトで、ディレクトリに 1 つのファイルをロードする

常駐メモリは 1.2GB と報告されました

入力: 138MB

出力: 207MB

入力レコードを減らす: 1,630,477

持続時間: 4分11秒

テスト ジョブ 2

同じスクリプト、17 ファイル

常駐メモリ:16.4GB

入力: 3.5GB

出力:1.3GB

入力レコードを減らす: 10,648,807

時間: 6分48秒

テスト ジョブ 3

同じスクリプト、51 ファイル

常駐メモリ:41.4GB

入力:10.9GB

出力: 記録されない

入力レコードを減らす: 31,968,331

所要時間: 6分18秒

最終的な考え:

これは他に何も実行されていない 4 ノード クラスターであり、完全に Cloudera Hadoop CDH4 専用で、この 1 つのジョブのみを実行しています。これが私の元の質問に答えるために人々が必要とするすべての情報であることを願っています! 一度に 1 つのファイルをロードするある種のファイル解析ループが解決策であると強く思いますが、Hadoop よりも Pig についての知識が少ないです。私にはプログラミング/開発のバックグラウンドがありますが、この場合、私はシステム管理者であり、研究者やプログラマーではありません。

4

1 に答える 1