Hadoop 初步認識Hive

2021-08-25 02:49:29 字數 1606 閱讀 4830

一、hive是什麼?

二、hive和常用資料庫的區別

hive基於hadoop,hadoop是批處理系統,不能保證低延遲,因此,hive的查詢也不能保證低延遲。hive的工作模式是提交乙個任務,等到任務結束時被通知,而不是實時查詢。相對應的是,類似於oracle這樣的系統當執行於小資料集的時候,響應非常快,可當處理的資料集非常大的時候,可能需要數小時。需要說明的是,hive即使在很小的資料集上執行,也可能需要數分鐘才能完成。總之,低延遲不是hive追求的首要目標。hive的設計目標是:可伸縮、可擴充套件、容錯及輸入格式松耦合。

三、hive的幾個特點

1.hive最大的特點是通過類sql來分析大資料,而避免了寫mapreduce程式來分析資料,這樣使得分析資料更容易;

2.資料是儲存在hdfs上的,hive本身並不提供資料的儲存功能;

3.hive是將資料對映成資料庫和一張張的表,庫和表的元資料資訊一般存在關係型資料庫上(比如mysql);

4.資料儲存方面:它能夠儲存很大的資料集,並且對資料完整性、格式要求並不嚴格;

5.資料處理方面:因為hive語句最終會生成mapreduce任務去計算,所以不適用於實時計算的場景,它適用於離線分析。

四、hive架構

hive的核心是驅動引擎,驅動引擎由四部分組成:直譯器:直譯器的作用是將hivesql語句轉換為語法樹(ast);編譯器:編譯器是將語法樹編譯為邏輯執行計畫;優化器:優化器是對邏輯執行計畫進行優化;執行器:執行器是呼叫底層的執行框架執行邏輯執行計畫。

hive的資料是儲存在hdfs上的。hive中的庫和表可以看作是對hdfs上資料做的乙個對映。所以hive必須是執行在乙個hadoop集群上的。

hive語句的執行過程:hive中的執行器,是將最終要執行的mapreduce程式放到yarn上以一系列job的方式去執行。

hive的元資料儲存:hive的元資料是一般是儲存在mysql這種關係型資料庫上的,hive和mysql之間通過metastore服務互動。

hive客戶端:hive有很多種客戶端。cli命令列客戶端,採用互動視窗,用hive命令列和hive進行通訊;hiveserver2客戶端,用thrift協議進行通訊,thrift是不同語言之間的轉換器,是連線不同語言程式間的協議,通過jdbc或者odbc去訪問hive;hwi客戶端:hive自帶的乙個客戶端,但是比較粗糙,一般不用;hue客戶端:通過web頁面來和hive進行互動,使用的比較多。

五、hive 資源

facebook 映象(被牆需翻牆):[[

wiki 頁面:[[

入門指南:[[

查詢語言指南:[[

演示文稿:[[

藍圖:[[

大多數有關 hive 的使用和特性的問題可以從以上的鏈結中尋找到答案。當然,由於 hive 本身在不斷的發展中,文件的更新速度很多時候都趕不上 hive 本身的更新速度,若希望了解 hive 的最新動態或者遇到 bug,可以加入 hive 的郵件列表:

* user: [email protected]

* developer: [email protected]

初學HIVE(一) 初步認識HIVE

hive是基於hadoop的資料倉儲工具,可以將結構化的資料檔案對映為一張表,並提供類sql查詢功能。本質是將hql轉化成mapreduce程式,儲存的基礎資料在hdfs上,執行程式執行在yarn上。hive 在查詢資料的時候,由於沒有索引,需要掃瞄整個表,因此延遲較高。還有乙個原因是mapredu...

HIve的初步認識(一 )

mapreduce中用於統計分析的資料大部分都是結構化的資料,如果資料量比較小的時候,直接使用mysql,當資料量大的時候,針對這個結構化的資料的統計分析,sql更為方便,mapreduce的統計分析針對結構化資料的,絕大部分都可以使用sql語句做,比mapreduce開發成本低。出現了乙個基於mr...

hive的初步認識(二)

管理資料,不同模組的資料最好放在不同的資料庫中,同mysql中的資料庫的概念 內部表 管理表 managed table 表的建立,表的資料的刪除,都是由hive自己決定的,同mysql中的表。內部表在進行刪除的時候,元資料和原始資料都會被刪除 外部表 external table 和內部表對立面,...