1

Hadoop ストリーミング ジョブの最初のステップで、パフォーマンスが非常に低下しています。マッパーは S3 から約 40KB/s ~ 50KB/s を読み取ったようです。

S3 から最大 100MB のデータを読み取るのに 1 時間以上かかります

データの保存方法: S3 バケット内の数千の ~5-10KB GZip ファイル。

最近、サンプルの 100MB データセットのすべてのファイルを解凍し、同じ S3 バケットに単一の GZip ファイルとしてアップロードしました。タスクは 3 分で完了しました (以前の 1 時間の実行に対して)。

勇気づけられて、サンプルの 2GB データセットのすべてのファイルを解凍し、それを単一の GZip ファイルとして同じ S3 バケットにアップロードしました。また、タスクに 1 時間以上かかりました。その後、タスクを終了しました

mapred.min.split.sizeと をいじったことはありませんがmapred.max.split.size、いじり始めるにはいくつかのサンプル値が必要です。

インターネットで読んだ投稿によると、Hadoop ストリーミング タスクの GZip 入力ファイルを使用して GB 単位のデータを処理しても、S3 からの読み取りに関する限り、多くのペナルティは発生しないようです。

共有していただけますか:

  1. S3に保存するファイルの「ブロブサイズ」と
  2. タスクごとに処理するそれらの数と
  3. それらの処理にはどのくらい時間がかかりますか?

を調整し、S3 に関して上記の 3 つの値を最適に保つと、ジョブの実行時間に多くの変化が生じるとmapred.min.split.size思います。mapred.max.split.size

4

1 に答える 1

0

gzip ファイルの読み取りは並列化できません。すべてのファイルを 1 つの巨大なファイルに連結して gzip することで、ボトルネックが発生しました。圧縮ファイルがほぼ同じサイズで、128Mb 以上で、ファイルの数が Hadoop クラスター上のレデューサーの数と等しくなるように、ファイルを連結して個別に gzip することで、最高のパフォーマンスを得ることができます。

于 2012-07-03T18:36:06.033 に答える