Hive 學習

遇見是種偶然發表於2017-10-11

 

 

一、hive 特性

 

1、hive 是基於Hadoop 的一個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供完整的 sql 查詢功能,可以將 sql 語句轉換為 MapReduce 任務進行執行。其優點是學習成本低,可以通過類 SQL 語句快速實現簡單的 MapReduce 統計,不必開發專門的MapReduce 應用,十分適合資料倉儲的統計分析。

 

2、Hive 是建立在 Hadoop 上的資料倉儲基礎構架。它提供了一系列的工具,可以用來進行資料提取轉化載入(ETL),這是一種可以儲存、查詢和分析儲存在 Hadoop 中的大規模資料的機制。 Hive 定義了簡單的類 SQL 查詢語言,成為HQL ,它允許熟悉 SQL 的使用者查詢資料。同時,這個語言也允許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reducer 來處理內建的 mapper 和 reducer 無法完成的複雜分析工作。

 

二、hive和關聯式資料庫的區別

 

1、hive 和關聯式資料庫儲存檔案的系統不同,hive 使用的是 hadoop 的HDFS (hadoop 的分散式檔案系統),關聯式資料庫則是伺服器本地的檔案系統。

 

2、hive 使用的計算模型是mapreduce ,關係型資料則是自己設計的計算模型。

 

3、關聯式資料庫是為實時查詢的業務進行設計的,而 hive 則是為海量資料做資料探勘設計的,實時性很差;實時性的區別導致 hive 的應用場景和關聯式資料庫有很大不同。

 

4、hive 繼承 hadoop 的易擴充套件自己的儲存能力和計算能力,關係型資料在這方面比資料庫差很多。

 

三、hive

 

hadoop 和 mapreduce 是 hive 架構的根基。 Hive架構包括如下元件:CLI ( command line interface ) 、 JDBC/ODBC 、Thrift Server 、 WEB GUI 、metastore 和 Driver ( Complier  、Optimizer 和 Executor ) 。這些元件可分為兩類:服務端元件和客戶端元件。

 

1、服務端元件

 

(1)Driver 元件: 該元件包括 Complier 、 Optimizer 和 Executor ,它的作用是將我們寫的 HiveQL (類SQL) 語句進行解析、編譯優化,生成執行計劃,然後呼叫底層的 mapreduce 計算框架。

 

(2)Merastore 元件:後設資料服務元件,這個元件儲存hive的後設資料,hive 的後設資料儲存在關聯式資料庫裡,hive 支援的關聯式資料庫有 derby 、mysql 。後設資料對於 hive 十分重要,因此 hive 支援把 metastore 服務獨立出來,安裝到遠端的伺服器叢集裡,從而解耦 hive 服務和 metastore 服務,保證 hive 執行的健壯性。

 

hive 的 metastore 元件是 hive 後設資料集中存放地。 Metastore 服務和後臺資料的儲存。後臺資料儲存的介質就是關聯式資料庫,例如 hive 預設的嵌入式磁碟資料庫 derby ,還有 mysql 資料庫。Metastore 服務是建立在後臺資料儲存介質之上,並且可以和 hive 服務進行互動的服務元件。預設情況下,metastore 服務和 hive 服務是安裝在一起的,執行在同一個程式中。也可以把 metastore 服務從 hive 服務中剝離出來, metastore 獨立安裝在一個叢集裡, hive 遠端呼叫 metastore 服務,這樣就可以把後設資料這一層放到防火牆之後,客戶端訪問 hive 服務,就可以連線到後設資料這一層,從而提供了更好的管理性和安全保障。

 

(3)Thrift 服務:thrift 是 facebook 開發的一個軟體框架,它用來進行可擴充套件且跨語言的服務的開發, hive 整合了該服務 ,能讓不同的程式語言呼叫 hive 的介面。

 

2、客戶端元件

 

(1)GLI :command line interface ,命令列介面。

 

(2)Thrift 客戶端:hive 架構的許多客戶端介面是建立在 thrift 客戶端之上,包括 JDBC 和 ODBC 介面。

 

(3)WEBUI :hive 客戶端提供了一種通過網頁的方式訪問 hive 所提供的服務。這個介面對應 hive 的 hwi 元件 ( hive web interface ) ,使用前要啟動 hwi 。

 

 

 

 本文轉載於:http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html

 

 

相關文章