您好,登錄后才能下訂單哦!
小編給大家分享一下Hive源碼編譯的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Hive簡(jiǎn)介:
Hive是一個(gè)基于Hadoop的數(shù)據(jù)倉(cāng)庫(kù),可以將結(jié)構(gòu)化數(shù)據(jù)映射成一張表,并提供類SQL的功能,最初由Facebook提供,使用HQL作為查詢接口、HDFS作為存儲(chǔ)底層、MapReduce作為執(zhí)行層,設(shè)計(jì)目的是讓SQL技能良好,但Java技能較弱的分析師可以查詢海量數(shù)據(jù),2008年facebook把Hive項(xiàng)目貢獻(xiàn)給Apache。Hive提供了比較完整的SQL功能(本質(zhì)是將SQL轉(zhuǎn)換為MapReduce),自身最大的缺點(diǎn)就是執(zhí)行速度慢。Hive有自身的元數(shù)據(jù)結(jié)構(gòu)描述,可以使用MySql\ProstgreSql\oracle 等關(guān)系型數(shù)據(jù)庫(kù)來進(jìn)行存儲(chǔ),但請(qǐng)注意Hive中的所有數(shù)據(jù)都存儲(chǔ)在HDFS中。Hive具有比較好的靈活性和擴(kuò)展性,支持UDF,自定義存儲(chǔ)格式,適合離線數(shù)據(jù)處理。
Hive體系架構(gòu):
1.用戶接口:包括 CLI, Client, WUI。其中最常用的是 CLI,CLI為shell命令行,Cli 啟動(dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè) Hive 副本。Client 是 Hive 的客戶端,用戶連接至 Hive Server。在啟動(dòng) Client 模式的時(shí)候,需要指出 Hive Server 所在節(jié)點(diǎn),并且在該節(jié)點(diǎn)啟動(dòng) Hive Server。 WUI 是通過瀏覽器訪問 Hive。
2.元數(shù)據(jù)存儲(chǔ):通常是存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)如 mysql, derby 中
3.解釋器、編譯器、優(yōu)化器、執(zhí)行器:完成 HQL 查詢語(yǔ)句從詞法分析、語(yǔ)法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成。生成的查詢計(jì)劃存儲(chǔ)在 HDFS 中,并在隨后有MapReduce 調(diào)用執(zhí)行。
4.Hadoop:Hive中數(shù)據(jù)用 HDFS 進(jìn)行存儲(chǔ),利用 MapReduce 進(jìn)行計(jì)算。
Hive源碼編譯:
我們選取CDH版本進(jìn)行編譯,以hive-1.1.0-cdh6.7.0版本為例。
前期準(zhǔn)備:
1.配置jdk1.7環(huán)境。
2.安裝maven。
3.安裝hadoop-2.6.0-cdh6.7.0環(huán)境(版本號(hào)與hive要對(duì)應(yīng))。
注:前期我使用的是Apache 2.8版本的hadoop,目前已經(jīng)更改為CDH版本
# 下載地址: http://archive.cloudera.com/cdh6/cdh/5/ [root@hadoop000 ~]# su - hadoop [hadoop@hadoop000 ~]$ cd source [hadoop@hadoop000 source]$ wget http://archive.cloudera.com/cdh6/cdh/5/hive-1.1.0-cdh6.7.0-src.tar.gz [hadoop@hadoop000 source]$ tar -xzvf hive-1.1.0-cdh6.7.0-src.tar.gz
[hadoop@hadoop000 source]$ cd hive-1.1.0-cdh6.7.0 # 需等待一段時(shí)間 [hadoop@hadoop000 hive-1.1.0-cdh6.7.0]$ mvn -Phadoop-2 -Pdist -DskipTests -Dmaven.javadoc.skip=true clean package ... ... [INFO] Hive ODBC .......................................... SUCCESS [ 5.811 s] [INFO] Hive Shims Aggregator .............................. SUCCESS [ 0.755 s] [INFO] Hive TestUtils ..................................... SUCCESS [ 1.294 s] [INFO] Hive Packaging ..................................... SUCCESS [01:41 min] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 18:22 min [INFO] Finished at: 2018-06-02T11:37:54+08:00 [INFO] Final Memory: 144M/494M [INFO] ------------------------------------------------------------------------ # 編譯成功 會(huì)在源碼目錄下面的packaging/target目錄下面生成一個(gè)tar包,相關(guān)的hive模塊jar包都能在這個(gè)tar包里面找到。 文件名稱:apache-hive-1.1.0-cdh6.7.0-bin.tar.gz # 可使用此包來安裝Hive,也可在此網(wǎng)站http://archive.cloudera.com/cdh6/cdh/5/ 直接下載相應(yīng)版本已編譯的安裝包。
以上是“Hive源碼編譯的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。