学習のハイブ方法(理論セクション)

、ハイブはじめに

  ロゴApacheの公式ウェブサイトでは、半分のHadoop象の頭、半分蜂の体を与えられたが、また、それの記号が入力されているHadoopの、ハハ、純粋に個人的な理解に基づいています。

  HadoopのHiveのが基づいているデータウェアハウス・ツールは、実行するのMapReduceタスクにSQL文を変換することができます。データ抽出、変換するために使用することができ、ロード(ETL)、データストレージのHadoopの大規模解析に格納、クエリとメカニズムです。

  ハイブクラスは、単純なSQLクエリ言語を定義し、SQLに精通しているユーザーがデータを照会することができますHiveQL、なります。

  HiveSQL:ハイブ、SQL文法のクラスによる分散コンピューティングのために。非常に類似した彼らとHQLとSQL、MapReduceの、ハイブとしてHQLを実行する意志の実行中にハイブ変換は、それが実際にHadoop、MapReduceのに基づく分散コンピューティングフレームワークであり、まだ根本的なプログラムなので、それはまだ本質的です種は、ビッグデータ分析ツールをオフライン

二、ハイブのアプリケーションシナリオ

  ハイブは、Hadoopの静的(オフライン)バッチ処理の上に構築され、Hadoopのは、通常、高レイテンシーを持っており、ジョブの投入とスケジューリング時のオーバーヘッドの多くを必要とします。したがって、ハイブは、大規模なデータを低遅延かつ高速なクエリを達成することはできません

  ハイブクエリ操作プロセスは、厳密にHadoopのMapReduceジョブの実行モデルを遵守し、ハイブは通訳を通じてMapReduceジョブのためのHadoopクラスタに提出し、ユーザーのHiveQL文を変換し、Hadoopの監視プロセスは、ジョブを実行し、ユーザにジョブの実行結果に戻ります。ハイブは、オンライン・トランザクション処理のために設計されていない、ハイブは、行レベルの操作に基づいて、リアルタイムのクエリと更新データを提供していません。ハイブ最大限に活用シナリオ:大規模データなどのWebログ解析などのオフラインバッチジョブ、。

三、ハイブアーキテクチャ

  

CLI、JDBCおよびWUI:3つのユーザー・インターフェースがあります。

  ①CLI、最も一般的なモード:実際には、通常>ハイブコマンド操作は、ユーザーインターフェイスはCLIです

  ②JDBCは、Javaコードによって、あなたはhiveserverを開始する必要があり、その後、接続作業

MetaStroeメタベース

  例えばMySQLのダービーとしてデータベースに格納されたハイブメタデータ。ハイブメタデータは、テーブルの名前、およびパーティションのリストとそのプロパティ、プロパティ・シートを含む(か外部表、など)、ディレクトリ、および他のデータテーブル。

インタプリタ(コンパイラ)、オプティマイザ(オプティマイザ)、アクチュエータ(執行)成分

  これらの三つの成分:字句解析からHQL文の解析、コンパイル、最適化、およびクエリプランを生成します。生成されたクエリプランは、HDFS、MapReduceの中に格納され、その後の実行のために呼ばれています

Hadoopの

  Hadoopのハイブに格納されたデータは、クエリのほとんど、計算のMapReduceによって行わ

四、ハイブ原理分析

ハイブ(HQL根本的な実行の原則により解析図):

      ①クライアントは、HQL書(提出左側のUI部分を

      ②DriverHQLコンパイラ(に転送コンパイラ成分解析、HQL字句解析)。この場合、コンパイラは、エンドテーブル内のどのオペレーティングHQL文を知っています。

      ③基礎となるクエリのメタデータデータベース(MetaStroeテーブル情報を探し)(デフォルトのDerbyデータベースは、その後のMySQLで置き換えられます)

      ④返されたメタ情報

      ⑤CompilerコンパイラはHQL文の解析プログラムを提出します  

      ⑥実行プロセス

        i.executor执行器收到方案后,执行方案,在此需要注意:执行器在此执行方案时,会进行判断:如果不涉及MR组件,比如为表添加分区信息,简单的查询操作等,此时会直接与元数据库进行交互,然后去HDFS直接寻找具体数据;如果方案需要转换成MRJob,则会将job提交给Hadoop的JobTracker(后续为Yarn)

        ii.MR Job执行完成,并且将结果写入HDFS中

        iii.执行器与HDFS交互,获取结果文件信息

      ⑦如果客户端提交的hql语句是带有查询结果性,则会发生7~8~9,完成结果的查询。

おすすめ

転載: www.cnblogs.com/rmxd/p/11318091.html