1

私は HADOOP 1.2.1 サーバーを使用しており、そこで多くの豚の仕事を実行しています。そして最近、Hadoop サーバーを HADOOP 2.2.0 に変更することを検討しました。そこで、HADOOP 1.2.1 バージョンで行ったように、HADOOP 2.2.0 でいくつかの豚の仕事を試しました。

しかし、YARN MR2 で私がほとんど理解していないことの 1 つは、すべての mr ジョブでスケジュールされている削減ジョブが 1 つだけであることです。

最初は、reduce の方が mr1 よりも高速であると思います。これは、リソース マネージャーが、reduce ジョブを 1 台のサーバーだけで処理することによって効率的にスケジュールされているためです。

しかし、すべての大きなサイズの mr ジョブでは、YARN MR2 は毎回スケジュールされた 1 つの Reduce ジョブのみを割り当てます。

以下はExtreamのケースです。

私の古い HADOOP (バージョン 1.2.1) サーバーは、1 つのジョブトラッカーと 2 つのタスクトラッカーで構成されています。(各4コア、32G)

種類 合計タスク (成功 + 失敗 + 強制終了) 成功したタスク 失敗したタスク 強制終了されたタスク 開始時刻 終了時刻
セットアップ 1 1 0 0 2014 年 1 月 27 日 18:01:45 2014 年 1 月 27 日 18:01:46 (0 秒)
地図 2425 2423 0 2 2014 年 1 月 27 日 18:01:26 2014 年 1 月 27 日 19:08:58 (1 時間 7 分 31 秒)
Reduce 166 163 0 3 2014 年 1 月 27 日 18:04:35 2014 年 1 月 27 日 20:40:15 (2 時間 35 分 40 秒)
クリーンアップ 1 1 0 0 2014 年 1 月 27 日 20:40:16 2014 年 1 月 27 日 20:40:17 (1 秒)

2時間38分かかります。

私の新しい HADOOP (バージョン 2.2.0) サーバーは、1 つのリソース マネージャーと 8 つのノード マネージャー (それぞれ 4 コア、32G) で構成されています (新しいシステムの方がはるかに優れています)。

ジョブ名: PigLatin:DefaultJobName
ユーザー名: hduser
キュー: デフォルト
状態: 成功
Uberized: false
開始: 2014 年 1 月 28 日火曜日 16:09:41 KST
終了: 2014 年 1 月 28 日火曜日 21:47:45 KST
経過: 5 時間 38 分 4 秒
診断:    
平均マップ時間 41秒
平均短縮時間 3 時間 48 分 23 秒
平均シャッフル時間 1時間36分35秒
平均マージ時間 1 時間 27 分 38 秒
アプリケーションマスター
試行回数 開始時刻 ノード ログ
1 火曜日 1 月 28 日 16:09:39 KST 2014 awdatanode2:8042 ログ
タスクの種類 合計完了
地図 1172 1172
減らす 1 1
試行タイプ 失敗 強制終了 成功
マップ 0 1 1172
0 0 1 を減らす

5時間38分かかります。

My Old Hadoop サーバーのリソースは貧弱ですが、New Hadoop サーバーよりもはるかに高速です。分配される仕事を減らすからです。一方、HADOOP 2.2.0 サーバーには豊富なリソースがあり、マップは古いシステムよりもはるかに高速でしたが、reduce には非常に長い時間がかかりました。

Map (4G、ヒープ スペース 3G) および Reduce (8G、ヒープ スペース 6G) として構成された Hadoop 2.2 メモリ。さまざまな構成セットを試しました。しかし、結果は常に1つの削減ジョブでした。

そこで豚のソースコードを調べてみました。

My Pig ジョブが常に One reduce ジョブを作成する理由は、InputSizeReducerEstimator クラスが hdfs ファイル システムにアクセスできないためです。

// InputSizeReducerEstimator.java List の 79 行目 poLoads = PlanHelper.getPhysicalOperators(mapReduceOper.mapPlan, POLoad.class);

結果の poLoads は常に 0 サイズです。

したがって、私のreduceジョブは常に1と推定されます。

4

1 に答える 1

1

pig-0.12.1-h2.jar ビルドを再構築することで、この問題を解決します。

私は豚のユーザーグループに尋ねました...そして彼らはにパッチを当てました

https://issues.apache.org/jira/browse/PIG-3512

于 2014-02-09T02:18:47.317 に答える