Hive とそのアーキテクチャの概要
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
ハイブとは何ですか?
- Hadoop ベースのデータ ウェアハウスは、一部の高遅延アプリケーション (オフライン開発) に適しており、Hadoop ファイルに格納されている構造化データ ファイルと半構造化データ ファイルをデータベース テーブルにマッピングし、テーブル クエリに基づいて SQL のようなデータを提供できます。 Hive Query Language (HQL) と呼ばれる、Hadoop ファイルに保存されている大規模なデータ セットにアクセスして分析するためのモデル。
- Hive の中核は、HQL を MapReduce プログラムに変換し、そのプログラムを Hadoop クラスターに送信して実行することです。
- Hive 自体はデータを保存したり計算したりしません。Hive 内のテーブルは純粋に論理テーブルです。
データ ウェアハウスとは何ですか?
- データ ウェアハウス自体はデータを「生成」せず、そのデータはさまざまな外部システムから取得されます。
- 同時に、データ ウェアハウス自体はデータを「消費」する必要がなく、結果はさまざまな外部アプリケーションに公開されます。
- これが、「工場」ではなく「倉庫」と呼ばれる理由です。
Hive のアーキテクチャとコンポーネント

- メタストア: 通常、Mysql/derby などのリレーショナル データベースに保存されます。Hive のメタデータには、テーブルの名前、テーブルの列とパーティションとその属性、テーブルの属性 (外部テーブルかどうかなど) が含まれます。テーブルのデータが配置されているディレクトリなど。
- 運転者 : 構文パーサー、プラン コンパイラー、オプティマイザー、エグゼキューターを含むドライバー。字句解析、構文解析、コンパイル、最適化、クエリ プランの生成に至るまでの完全な HQL クエリ ステートメント。生成されたクエリ プランは HDFS に保存され、その後実行エンジン呼び出しによって実行されます。
- パーサー (SQL パーサー): SQL 文字列を抽象構文ツリー AST に変換し、SQL セマンティクスが正しいかどうか、テーブルが存在するかどうか、フィールドが存在するかどうかなど、AST に対して構文分析を実行します。
- コンパイラ (物理プラン): AST をコンパイルして論理実行プラン (DAG) を生成します。
- オプティマイザー (クエリオプティマイザー): 論理的な実行計画を最適化します。
- 実行: 論理実行プランを、MapReduce/Spark プログラムである実行可能な物理プランに変換します。
HQL実行プロセス

- リクエストを行う: UI からドライバーへの実行リクエストを開始します。
- 実行計画を取得します。 ドライバーはユーザー要求をコンパイラーに送信して実行計画を取得します。
- メタデータを取得します。 コンパイラーは、SQL ステートメント内の関連するテーブルおよびパーティション情報に基づいて、メタ ストアから関連するメタデータを取得します。
- メタデータを返す: メタ ストアは、対応するメタデータをコンパイラに返します。
- 実行計画を返します: テーブルとパーティションのメタデータに基づいて SQL を解析および最適化し、論理的な実行プランを生成します。プランは DAG グラフであり、各ステージは MapReduce マップまたはリデュース操作に対応します。
- 実行計画を実行します。 実行計画を実行エンジンに送信します。実行エンジンは、論理実行計画を MapReduce の形式で実行するために Hadoop に送信します。
- 実行結果が得られます。 ドライバーは実行結果を収集し、UI に送信します。