HIVE の概要、長所と短所、およびアーキテクチャの原則

1 ハイブとは

  1. ハイブの紹介

hive: 大規模な構造化ログを解決するために Facebook によってオープンソース化されたデータ統計ツール。

Hive は、構造化データ ファイルをテーブルにマップし、SQL のようなクエリ関数を提供できる Hadoop ベースのデータ ウェアハウス ツールです。

  1. Hive の本質: HQL を MapReduce プログラムに変換する

画像の説明を追加してください

Hive によって処理されたデータは HDFS に保存されます

Hive 分析データの基礎となる実装は MapReduce です

Yarn 上でプログラムを実行する

2 Hiveのメリットとデメリット

2.1 利点

  1. 操作インターフェースはSQLライクな構文を採用しており、迅速な開発(シンプルで使いやすい)が可能です。
  2. これにより、MapReduce の作成が不要になり、開発者の学習コストが削減されます。
  3. Hive の実行遅延は比較的長いため、Hive はデータ分析や高いリアルタイム パフォーマンスを必要としない場合によく使用されます。
  4. Hive の利点は大規模なデータの処理にありますが、Hive は実行遅延が比較的大きいため、小規模なデータの処理には利点がありません。
  5. Hive はユーザー定義関数をサポートしており、ユーザーはニーズに応じて独自の関数を実装できます。

2.2 欠点

  1. Hive の HQL 表現力は制限されています
    1. 反復アルゴリズムでは表現できない
    2. データマイニングが苦手で、MapReduceのデータ処理フローの制限により、より効率的なアルゴリズムを実現できません。
  2. ハイブの効率が低い
    1. Hive によって自動的に生成される MapReduce ジョブは通常、十分なインテリジェンスを備えていません
    2. Hive のチューニングが難しく粒度が粗い

Hive アーキテクチャの 3 つの原則

画像の説明を追加してください

  1. メタデータ: メタストア

    CLI (コマンドライン インターフェイス)、JDBC/ODBC (jdbc アクセス ハイブ)、WEBUI (ブラウザ アクセス ハイブ)

  2. メタデータ: メタストア

    メタデータには、テーブル名、テーブルが属するデータベース (デフォルトはデフォルト)、テーブル所有者、列/パーティション フィールド、テーブル タイプ (外部テーブルかどうか)、テーブル データが配置されているディレクトリなどが含まれます。デフォルトはビルトインの derby データベースに保存されます。メタストアの保存には MySQL を使用することをお勧めします。

  3. ハドゥープ

    ストレージには HDFS を使用し、計算には MapReduce を使用します。

  4. ドライブ: ドライバー

    パーサー (SQL パーサー): SQL 文字列を抽象構文ツリー AST に変換します。このステップは通常、antlr などのサードパーティ ツール ライブラリを使用して実行されます。テーブルが存在するかどうか、フィールドが存在するかどうかなど、AST で文法分析を実行します。 SQL セマンティクスが間違っています。

    コンパイラー (物理プラン): AST をコンパイルして論理実行プランを生成します。

    オプティマイザー (クエリ オプティマイザー): 論理的な実行計画を最適化します。

    実行: 論理実行計画を実行可能な物理計画に変換します。Hive の場合は MR/Spark です。

画像の説明を追加してください

ユーザーに提供される一連の対話型インターフェイスを通じて、Hive はユーザー命令 (SQL) を受け取り、独自のドライバーを使用し、メタデータ (MetaStore) を結合し、これらの命令を MapReduce に変換し、実行のために Hadoop に送信し、最後に実行を返します。結果は次のとおりです。ユーザーインターフェイスに出力します。

おすすめ

転載: blog.csdn.net/meng_xin_true/article/details/126039609