21

Pig、Hiveの抽象化とは何かについての基本的な理解があります。しかし、Hive、Pig、またはネイティブ マップの削減が必要なシナリオについて明確な考えがありません。

基本的に、Hive は構造化処理用であり、Pig は非構造化処理用であると指摘する記事をいくつか読みました。ネイティブ マップの縮小が必要になるのはいつですか? Pig または Hive を使用しても解決できないが、ネイティブの map reduce では解決できないいくつかのシナリオを指摘できますか?

4

7 に答える 7

19

多くのネストされた if .. else .. 構造を持つ複雑な分岐ロジックは、Pangoolを使用できる構造化データを処理するために、標準の MapReduce で実装する方が簡単かつ迅速です。また、JOIN なども簡素化されます。また、Standard MapReduce を使用すると、データ処理フローに必要な MapReduce ジョブの数を最小限に抑えるための完全な制御が可能になり、パフォーマンスにつながります。しかし、コーディングして変更を導入するには、より多くの時間が必要です。

Apache Pig は構造化データにも適していますが、その利点は、データの BAG (キーでグループ化されたすべての行) を操作できることです。次のようなものを実装する方が簡単です。

  1. 各グループの上位 N 要素を取得します。
  2. 各グループごとに合計を計算し、その合計をグループ内の各行に当てはめます。
  3. JOIN の最適化にはブルーム フィルターを使用します。
  4. マルチクエリのサポート (これは、PIG が 1 つのジョブでより多くの処理を実行することにより、MapReduce ジョブの数を最小限に抑えようとする場合です)

Hive はアドホック クエリに適していますが、その主な利点は、データを格納および分割するエンジンを備えていることです。ただし、そのテーブルは Pig または標準の MapReduce から読み取ることができます。

もう 1 つ、Hive と Pig は階層データの操作にはあまり適していません。

于 2013-07-31T07:34:20.717 に答える
5

ハイブ

長所:

Sql のようなデータベースの人はそれが大好きです。構造化データの優れたサポート。現在、構造のようなデータベース スキーマとビューをサポートしています。同時マルチ ユーザー、マルチ セッション シナリオをサポートしています。より大きなコミュニティ サポート。Hive、Hiver サーバー、Hiver Server2、Impala、Centry は既に

短所: データが大きくなりすぎてパフォーマンスが低下し、メモリ オーバー フローの問題が発生します。それで多くを行うことはできません。階層データは課題です。構造化されていないデータには udf のようなコンポーネントが必要です 複数の手法の組み合わせは、ビッグデータなどの場合に UTDF を使用した動的部分の悪夢になる可能性があります

Pig: 長所: 優れたスクリプト ベースのデータ フロー言語。

短所:

非構造化データには udf のようなコンポーネントが必要 大きなコミュニティ サポートではない

MapReudce: 長所: 「結合機能を実現するのが難しい」という意見には同意しないでください。実装したい結合の種類を理解していれば、数行のコードで実装できます。ほとんどの場合、MR の方がパフォーマンスが向上します。階層データの MR サポートは、特にツリーのような構造を実装するのに最適です。データのパーティショニング/インデックス作成の制御が向上します。ジョブ連鎖。

短所: より良いパフォーマンスを得るために API をよく知る必要があるなど コード / デバッグ / メンテナンス

于 2013-08-21T19:02:42.877 に答える
1

ここに大きな比較があります。すべてのユース ケース シナリオを指定します。

于 2016-10-19T12:13:50.793 に答える
1

PIG と HIVE を使用してできることはすべて、MR を使用して実現できます (ただし、時間がかかる場合もあります)。PIG と HIVE は下に MR/SPARK/TEZ を使用します。したがって、MR で実行できることはすべて、Hive と PIG で実行できる場合とできない場合があります。

于 2015-12-15T18:28:15.953 に答える