1. 程式人生 > >大資料8-Hive簡介和叢集搭建

大資料8-Hive簡介和叢集搭建

1.Hive特點:

     1.1可擴充套件性 :Hive可以自由的擴充套件叢集的規模,一般情況下不需要重啟服務;

     1.2延展性:Hive支援使用者自定義函式,使用者可以根據自己的需求來實現自己的函式;

     1.3容錯:良好的容錯性,節點出現問題,SQL仍可以完成執行。

2.HIve架構  

             

2.1基本組成:

    使用者介面:包括CLI、JDBC/ODBC、WebGUI;

    元資料儲存:通常是儲存在關係型資料庫中如Mysql等

    直譯器、編譯器、優化器、執行器。

2.2各元件的基本功能

  使用者介面主要由三個:CLI、JDBC/ODBC和WebGUI。其中,CLI為shell命令列;JDBC/ODBC是Hive的JAVA實現,與傳統資料庫JDBC類似;WebGUI是通過瀏覽器訪問Hive。

元資料儲存:Hive 將元資料儲存在資料庫中。Hive 中的元資料包括表的名字,表的列和分割槽及其屬性,表的屬性(是否為外部表等),表的資料所在目錄等。

直譯器、編譯器、優化器完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃儲存在 HDFS 中,並在隨後有 MapReduce 呼叫執行。

2.3Hive的資料儲存

     1.Hive中所有的資料都儲存在 HDFS 中,沒有專門的資料儲存格式(可支援Text,SequenceFile,ParquetFile,RCFILE等)

     SequenceFile是hadoop中的一種檔案格式:

      檔案內容是以序列化的kv物件來組織的

     2、只需要在建立表的時候告訴 Hive 資料中的列分隔符和行分隔符,Hive 就可以解析資料。

     3、Hive 中包含以下資料模型:DB、Table,External Table,Partition,Bucket。

                    db:在hdfs中表現為${hive.metastore.warehouse.dir}目錄下一個資料夾

                   table:在hdfs中表現所屬db目錄下一個資料夾

                  external table:與table類似,不過其資料存放位置可以在任意指定路徑

                  partition:在hdfs中表現為table目錄下的子目錄

                  bucket:在hdfs中表現為同一個表目錄下根據hash雜湊之後的多個檔案