Hive(1)Hiveの概要

1. Hiveを使い始める

1.1ハイブとは

Hive:大規模な構造化ログのデータ統計を解決するFacebookのオープンソース。

Hiveは数据仓库工具クエリ機能を統合结构化的数据文件映射为一张表および提供できるHadoop 基づいてい类SQLます。

本质是:将HQL转化成MapReduce程序

image-20200916135459253

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

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

3)実行プログラムはYarnで実行されます

1.2 Hiveの長所と短所

1.2.1利点

  1. 操作インターフェースは、SQLに似た構文を採用して、迅速な開発機能を提供します(シンプルで使いやすい)。

  2. MapReduceの作成を回避し、開発者の学習コストを削減します。

  3. Hiveの実行遅延は比較的大きいため、Hiveは多くの場合、データ分析や、リアルタイム要件が高くない状況で使用されます。

4)Hiveの利点はビッグデータの処理にありますが、Hiveの実行遅延は比較的大きいため、小さなデータの処理には利点がありません。

  1. Hiveはユーザー定義関数をサポートしており、ユーザーは必要に応じて独自の関数を実装できます。

1.2.2短所

1。HiveのHQL表現能力は限られています

(1)反復アルゴリズムは表現できない

(2)データマイニングが苦手

2。ハイブは比較的非効率的です

(1)Hiveによって自動的に生成されたMapReduceジョブは、通常、十分にインテリジェントではありません

(2)ハイブの調整が難しく、粒度が粗い

1.3 Hiveアーキテクチャの原則

img

1。ユーザーインターフェイス:クライアント

CLI(ハイブシェル)、JDBC / ODBC(Javaアクセスハイブ)、WEBUI(ブラウザアクセスハイブ)

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

メタデータには、テーブル名、テーブルが属するデータベース(デフォルトはデフォルト)、テーブル所有者、列/パーティションフィールド、テーブルタイプ(外部テーブルかどうか)、テーブルデータが配置されているディレクトリなどが含まれます。

默认存储在自带的derby数据库中,推荐使用MySQL存储Metastore

3.Hadoop

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

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

(1)パーサー(SQLパーサー):SQL文字列を抽象構文ツリーASTに変換します。この手順は通常、antlrなどのサードパーティツールライブラリで完了します。テーブルが存在するかどうか、フィールドが存在するかどうかなど、ASTを解析します。 SQLのセマンティクスは間違っていますか?

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

(3)オプティマイザー(Query Optimizer):論理実行プランを最適化します。

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

image-20200916140721644

ユーザーに提供される一連のインタラクティブなインターフェースを通じて、Hiveはユーザーの指示(SQL)を受け取り、独自のドライバーをメタデータ(MetaStore)と組み合わせて使用​​し、これらの指示をMapReduceに変換し、Hadoopに送信して実行し、最後に実行を返します。結果は、ユーザーインタラクティブインターフェイスに出力されます。

おすすめ

転載: blog.csdn.net/zmzdmx/article/details/108628209