Hive快速入門


一.簡介

  Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

  Hive是建立在 Hadoop 上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數據。同時,這個語言也允許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reducer 來處理內建的 mapper 和 reducer 無法完成的復雜的分析工作。
  Hive 沒有專門的數據格式。 Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允許用戶指定數據格式。

二.架構

  1.用戶接口主要有三個:CLI,Client 和 WUI。其中最常用的是CLI,Cli啟動的時候,會同時啟動一個Hive副本。Client是Hive的客戶端,用戶連接至Hive Server。在啟動 Client模式的時候,需要指出Hive Server所在節點,並且在該節點啟動Hive Server。 WUI是通過瀏覽器訪問Hive。

  2.Hive將元數據存儲在數據庫中,如mysql、derby。Hive中的元數據包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的數據所在目錄等。

  3.解釋器、編譯器、優化器完成HQL查詢語句從詞法分析、語法分析、編譯、優化以及查詢計划的生成。生成的查詢計划存儲在HDFS中,並在隨后有MapReduce調用執行。    4.Hive的數據存儲在HDFS中,大部分的查詢、計算由MapReduce完成(包含*的及類似的查詢除外,比如select * from tbl不會生成MapRedcue任務)。

三.HQL解釋過程

  

四.Hive搭建模式

  1.local模式

    此模式連接到一個In-memory的數據庫Derby,一般用於Unit Test。

    

  

  2.單用戶模式

    通過網絡連接到一個數據庫中,是最經常使用到的模式

    

  3.遠程服務器模式/多用戶模式

     用於非Java客戶端訪問元數據庫,在服務器端啟動MetaStoreServer,客戶端利用Thrift協議通過MetaStoreServer訪問元數據庫

    

 五.Hive集群搭建

  1.配置hive元數據

    

  2.配置臨時目錄等相關信息

    

  3.配置數據庫信息

    

    

    

    

  4.上傳mysql連接工具包

    

  5.創建hive-env.sh【從hive-env.sh.template重命名】

    

六.啟動及測試

  1.mysql數據庫初始化    

    

  執行成功之后可以看見Hive數據倉庫以及生成metastore元數據表

    

  2.啟動Hive 

    

  3.操作Hive

    

    

  4.創建庫,表及導入數據

    建庫zhen

    

    建表zhen_user

    

    load數據

    

    查看

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM