-
ハイブについて
ハイブは、データベース・テーブルにデータファイルの構造をマップし、単純なSQLクエリ機能を提供することができ、あなたはMapReduceのタスクを実行するために、クラスのSQL文を変換できるツールを倉庫のHadoopベースのデータです。
-
自然のハイブ
MapReduceプログラムにHQL。
-
SQL - > MapReduceの原則
-
ハイブの利点
- シンプルで使いやすい:SQLに似たクエリ言語HQLを提供します。
- スケーラビリティ:大規模なデータセットを計算/スケーラビリティ(計算エンジンとしてMR、ストレージシステムとしてHDFS)に設計され、一般的にサービスを再起動する必要はありませんが、スケールハイブ空きクラスタを拡張することができます。
- 統一されたメタデータ管理を提供します。
- 延性:ハイブサポートユーザー定義関数、ユーザーが自分のニーズに応じて、独自の機能を実装することができます。
- フォールトトレランス:良いフォールトトレランス、SQLノードでの問題は、まだ実装を完了することができます。
- ハイブは、ビッグデータを扱うことの利点を持っている、小さなデータ処理のための利点はありません。
- ハイブは、ユーザー定義関数をサポートし、ユーザーが自分のニーズに応じて、独自の機能を実装することができます。
-
ハイブの欠点
- HQLは、スキルのハイブ制限しました:
(1)反復アルゴリズムは、ページランクとして、表現することができません。
(2)データ・マイニングは、関数kmeansとして、良好ではありません。
効率の2.ハイブは比較的低いです。
(1)ハイブのMapReduce自動的に生成されたジョブは通常十分な知性
(2)ハイブチューニングがより難しく、粗いです
(3)ハイブ乏しい制御性
-
ハイブアーキテクチャ
ユーザインタフェース:クライアントCLI(ハイブシェルコマンドライン)、JDBC / ODBC(javaのアクセスハイブ)は、WebUI(ブラウザアクセスハイブ);
メタデータ(メタストア):メタデータが含まれています:テーブル名、テーブルはデータベースに属し(デフォルトはデフォルトである)、等テーブルの所有者、カラム/パーティションフィールド、テーブル型(それは外部のテーブルであるかどうか)、コンテンツのデータテーブルを、デフォルトは、データベースに格納されているダービーが来る、MySQLのストレージメタストアを使用することをお勧めします
使用のHadoop HDFSストアは、MapReduceのを使用して計算されます。
ドライバー(ドライバー)
(1)パーサ(SQLパーサ):抽象構文木SQL ASTに変換文字は、このステップは、このようなANTLRとして、ライブラリーを完了するために、サードパーティのツールを使用することが通常である、そのようなテーブルのASTの解析が存在し、フィールドが存在し、 SQLステートメントが間違っていますか。
(2)コンパイラ(物理計画):論理ASTコンパイルされた実行計画。
(3)オプティマイザ(クエリオプティマイザ):最適化ロジックの実行計画。
(4)アクチュエータ(実行):物理的な実行計画ロジックプログラムを実行することができるに変換するには、ハイブのためには、MR /スパークです。
-
ハイブとSQLデータベースの比較
クエリ言語 |
HQL |
SQL |
データの格納場所 |
HDFS |
ローカルFS |
データフォーマット |
ユーザー定義 |
システム決定しました |
データ更新 |
ハイブ後(0.14)のサポート |
サポート |
指数 |
ノー |
持っています |
実行 |
MapReduceの |
エグゼキュータ |
実行遅れ |
高いです |
低いです |
スケーラビリティ |
高いです |
低いです |
スケールデータ |
すばらしいです |
小さな |