3

大きなデータセットを効率的に並べ替えたいのですが(つまり、ここで説明するように、カスタムパーティショナーを使用して:MapReduceの並べ替えアルゴリズムはどのように機能しますか?)、ハイブを使用して並べ替えます。

ただし、Hiveのマニュアルには、「orderby」は単一のレデューサーによって実行されると記載されています。pigは記事に似たものを実装しているので、これは私を驚かせます-pig impl

私は何かが足りないのですか、それともハイブがこの仕事に適したハンマーではないのですか?

4

3 に答える 3

4

Hive はこの仕事に適したツールではないと思います。少なくとも今のところ。OLAP/レポート ツールとして使用するように構築されており、分析クエリのほとんどが比較的小さな結果セットを生成するため、大規模な結果データセットを生成するように最適化されていません。その結果、TOP N 機能は優れていますが、合計順序は良くありません。

以前に遭遇したことがない場合に備えて、Hadoop の terasort の例を参照することをお勧めします。これは、MR を使用して可能な限り最良の方法で大規模なデータセットをソートすることを特に目的としています。http://hadoop.apache.org/common/docs/r0.20.1/api/org/apache/hadoop/examples/terasort/package-summary.html

于 2011-07-16T07:32:18.127 に答える
1

Hive で全体の順序付けを行うために複数のレデューサーを使用することはできません。まだ実装されていません - https://issues.apache.org/jira/browse/HIVE-1402

効率的な全順序付けが必要な場合は、カスタム MR ジョブを記述する代わりに pig を使用する方が簡単です。

于 2012-05-29T16:33:35.623 に答える
0

Hive は、クエリを実行するための MapReduce ジョブを生成します。あなたの特定のケースでは、データがレデューサーに供給される前に、Hadoop MapReduce フレームワークによって実際の並べ替えが行われます。

于 2011-07-12T15:10:18.407 に答える