ホームページ  >  記事  >  ハイムコンポーネントはどのようなサービスを提供しますか?

ハイムコンポーネントはどのようなサービスを提供しますか?

青灯夜游
青灯夜游オリジナル
2022-11-18 11:57:002495ブラウズ

Hive コンポーネントが提供できるサービス: 1. SQL ステートメントを MapReduce コードに変換する; 2. HDFS を使用してデータを保存できる; 3. MapReduce を使用してデータを計算できる。 hive は、Hadoop に基づくデータ ウェアハウス ツールで、データの抽出、変換、ロードに使用されます。hive データ ウェアハウス ツールは、構造化データ ファイルをデータベース テーブルにマップでき、SQL ステートメントを MapReduce タスクに変換して実行できる SQL クエリ関数を提供します。 。

ハイムコンポーネントはどのようなサービスを提供しますか?

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

データ ウェアハウスを構築する場合、Hive コンポーネントは非常に重要な役割を果たします。Hive が Hadoop ベースの重要なデータ ウェアハウス ツールであることはわかっていますが、その適用方法についてはさらに検討する必要があります。


Hive とは

hive は、データの抽出、変換、読み込みに使用される、Hadoop ベースのデータ ウェアハウス ツールです。 Hadoopに保存された大規模なデータを保存、クエリ、分析できる仕組みです。ハイブ データ ウェアハウス ツールは、構造化データ ファイルをデータベース テーブルにマップでき、SQL ステートメントを MapReduce タスクに変換して実行できる SQL クエリ関数を提供します。 Hive の利点は、学習コストが低く、SQL のようなステートメントを通じて高速な MapReduce 統計を実装できるため、専用の MapReduce アプリケーションを開発する必要がなく、MapReduce がよりシンプルになることです。 hive はデータ ウェアハウスの統計分析に非常に適しています

Hive の用途

1. SQL ステートメントを MapReduce コードに変換します
2. HDFS を使用してデータを保存できます
3. MapReduce を使用してデータを計算できます

#Hive の利点は何ですか

a.Hive の利点

(1) シンプルで使いやすい: SQL に似たクエリ言語 HQL

(2) スケーラブル: 非常に大規模なデータ セット向けに設計されています。拡張機能 (コンピューティング エンジンとしての MR、ストレージ システムとしての HDFS)

通常、サービスを再起動する必要はなく、Hive はクラスターの規模を自由に拡張できます。

#(3) 統合されたメタデータ管理の提供

#(4) スケーラビリティ: Hive はユーザー定義関数をサポートし、ユーザーは自分のニーズに応じて独自の関数を実装できます

#( 5) フォールト トレランス: 優れたフォールト トレランス、ノードに問題がある場合でも SQL は実行を完了できます

b. Hive の欠点

(1) hive の HQL 表現機能は限定的です

1) pagerank

  • などの反復アルゴリズムは表現できません2) kmeans などのデータマイニング

  • (2) ハイブの効率は比較的低いです。

1) ハイブによって自動的に生成される MapReduce ジョブは、通常、十分なインテリジェンスを備えていません。

    #2) Hive のチューニングが難しく粒度が粗い
  • 3) Hive の制御性が悪い
  • (3) Hive はサポートしていません。主に OLAP (オンライン分析処理) に使用されます

1) Hive によって処理されたデータは HDFS

ハイムコンポーネントはどのようなサービスを提供しますか?

に保存されます2) Hive 分析データの最下層のデフォルト実装は MapReduce

3) エグゼキューターは Yarn 上で実行されます

要約: Hadoop 効果のクライアントに相当します。

#Hive を使用する理由

(1) Hive と従来のデータベースの比較

Hive は、大量のデータのオフライン データ分析に使用されます。 Hive は SQL データベースに似ていますが、アプリケーションのシナリオはまったく異なり、バッチ データの統計分析にのみ適しています。

(2) Hive の利点

Hive は HDFS を使用してデータを保存し、MapReduce を使用してデータのクエリと分析を行います。なぜなら、Hadoop MapReduce を直接使用してデータを処理すると、人員の学習コストが高くなるという問題に直面し、MapReduce を使用して複雑なクエリ ロジックを開発するのは難しすぎるからです。 Hive では、操作インターフェイスに SQL ライクな構文が採用されており、迅速な開発機能を提供するだけでなく、MapReduce の記述を省略できるため、開発者の学習コストが削減され、機能拡張がより便利になります。 ハイムコンポーネントはどのようなサービスを提供しますか?

Hive はどのような問題を解決しますか?

Hive はビッグデータのクエリ機能を解決し、MR を書けない人でも MR を使用できるようにします. その本質は、HQL を MR に変換することです。その最下層は MR です。MR を書くのは非効率的で苦痛です。Hive の出現は、JAVAEE 兄弟にショートカットと朗報をもたらしました。

Hive アーキテクチャ原則

##1.ユーザー インターフェイス: クライアントCLI (ハイブ シェル)、JDBC/ODBC (Java アクセス ハイブ)、WEBUI (ブラウザ アクセス ハイブ)

2。メタデータ: メタストアハイムコンポーネントはどのようなサービスを提供しますか?

メタデータには、テーブル名、テーブルが属するデータベース (デフォルトはデフォルト)、テーブル所有者、列/パーティション フィールド、テーブルのタイプ

(外部テーブルかどうか)、およびテーブル データが含まれます。 location ディレクトリなど;

メタデータ: メタストア

メタデータには、テーブル名、テーブルが属するデータベース (デフォルトはデフォルト)、テーブル所有者、列/パーティション フィールド、テーブル##が含まれます。

# タイプ (外部テーブルかどうか)、テーブル データが配置されているディレクトリなど;

はデフォルトで組み込みの derby データベースに保存されます。MySQL の使用をお勧めします。メタストアを保存します。

3. Hadoop

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

4.ドライバー: Driver

(1) パーサー (SQL パーサー): SQL 文字列を抽象構文ツリー AST に変換します。このステップは通常、antlr などの

サードパーティ ツール ライブラリを使用して完了します。テーブルが存在するかどうか、フィールドが存在するかどうか、SQL セマンティクスが間違っているかどうかなど、AST で構文分析を実行します。

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

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

(4) 実行: 論理実行プランを実行可能な物理プランに変換します。 Hive の場合は MR/Spark です。

Hive は Hadoop 上に構築されており、すべての Hive データは HDFS に保存されます。データベース

は、ブロック デバイスまたはローカル ファイル システムにデータを保存できます。 ハイムコンポーネントはどのようなサービスを提供しますか?

Hive はデータ ウェアハウス アプリケーション向けに設計されているため、データ ウェアハウスのコンテンツの読み取りは多くなり、書き込みは少なくなります。したがって、Hive

のデータを書き換えることは推奨されません。すべてのデータはロード時に決定されます。通常、データベース内のデータは頻繁に変更する必要があるため、INSERT INTO... VALUES を使用してデータを追加し、UPDATE... SET を使用してデータを変更できます。

Hive とデータベースの比較

Hive は SQL に似たクエリ言語 HQL (Hive Query Language) を使用するため、Hive をデータベースとして理解するのは簡単です。実際、構造的な観点から見ると、クエリ言語が似ていることを除けば、Hive とデータベースには共通点がありません。このセクションでは、Hive とデータベースの違いをさまざまな側面から説明します。データベースはオンライン アプリケーションでも使用できますが、Hive はデータ ウェアハウス向けに設計されているため、このことを理解すると、アプリケーションの観点から Hive の特性を理解するのに役立ちます。

1. クエリ言語

SQL はデータ ウェアハウスで広く使用されているため、SQL に似たクエリ言語 HQL は、Hive の特性に合わせて特別に設計されています。 SQL 開発に精通している開発者は、Hive を開発に簡単に使用できます。 2. データの保存場所 Hive は Hadoop 上に構築されており、すべての Hive データは HDFS に保存されます。データベースは、ブロック デバイスまたはローカル ファイル システムにデータを保存できます。

3. データの更新: Hive はデータ ウェアハウス アプリケーション向けに設計されているため、データ ウェアハウスのコンテンツの読み取りは多くなり、書き込みは少なくなります。したがって、Hive 内のデータを書き換えることは推奨されず、すべてのデータはロード時に決定されます。通常、データベース内のデータは頻繁に変更する必要があるため、INSERT INTO... VALUES を使用してデータを追加し、UPDATE... SET を使用してデータを変更できます。

4. インデックス: Hive は、データのロード中にデータの処理を実行せず、データのスキャンも行わないため、データ内の一部のキーにはインデックスが付けられません。 Hive が条件を満たすデータ内の特定の値にアクセスしたい場合、データ全体をブルート フォース スキャンする必要があるため、アクセスのレイテンシが高くなります。 MapReduce の導入により、Hive はデータに並行してアクセスできるため、インデックスがなくても、Hive は大量のデータにアクセスする利点を発揮できます。データベースでは通常、インデックスは 1 つまたは複数の列に作成されるため、データベースは特定の条件で少量のデータにアクセスする際の効率が高く、待ち時間が短くなります。データ アクセスの待ち時間が長いため、Hive はオンライン データ クエリには適していません。

5. 実行: Hive のほとんどのクエリは、Hadoop が提供する MapReduce を通じて実行されます。通常、データベースには独自の実行エンジンがあります。

6. 実行遅延: Hive がデータをクエリする場合、インデックスがないためテーブル全体をスキャンする必要があるため、遅延が大きくなります。 Hive の実行遅延が長くなるもう 1 つの要因は、MapReduce フレームワークです。 MapReduce 自体の待ち時間が長いため、MapReduce を使用して Hive クエリを実行する場合も待ち時間が長くなります。対照的に、データベースの実行遅延は短くなります。もちろん、この低さはデータ規模が小さいという条件付きであり、データ規模がデータベースの処理能力を超えるほど大きい場合、Hive の並列コンピューティングは明らかに利点を発揮します。

7. スケーラビリティ: Hive は Hadoop 上に構築されているため、Hive のスケーラビリティは Hadoop のスケーラビリティと一致します (世界最大の Hadoop クラスタは Yahoo! にあります。2009 年、年間規模は約 4,000 ノードです) 。 ACID セマンティクスの厳しい制限により、データベースの拡張行は非常に限られています。現在最も先進的な並列データベースである Oracle の理論上の拡張能力はわずか 100 ユニット程度です。

8. データ スケール: Hive はクラスター上に構築されており、並列コンピューティングに MapReduce を使用できるため、大規模なデータをサポートでき、それに応じてデータベースはより小規模なデータ スケールをサポートできます。

プログラミング関連の知識について詳しくは、プログラミング教育をご覧ください。 !

以上がハイムコンポーネントはどのようなサービスを提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。