Hive簡介及源碼編譯
標簽: Hive
Hive簡介:
- Hive是一個基于Hadoop的數據倉庫,可以將結構化數據映射成一張表,并提供類SQL的功能,最初由Facebook提供,使用HQL作為查詢接口、HDFS作為存儲底層、MapReduce作為執行層,設計目的是讓SQL技能良好,但Java技能較弱的分析師可以查詢海量數據,2008年facebook把Hive項目貢獻給Apache。Hive提供了比較完整的SQL功能(本質是將SQL轉換為MapReduce),自身最大的缺點就是執行速度慢。Hive有自身的元數據結構描述,可以使用MySql\ProstgreSql\oracle 等關系型數據庫來進行存儲,但請注意Hive中的所有數據都存儲在HDFS中。Hive具有比較好的靈活性和擴展性,支持UDF,自定義存儲格式,適合離線數據處理。
Hive體系架構:
- 1.用戶接口:包括 CLI, Client, WUI。其中最常用的是 CLI,CLI為shell命令行,Cli 啟動的時候,會同時啟動一個 Hive 副本。Client 是 Hive 的客戶端,用戶連接至 Hive Server。在啟動 Client 模式的時候,需要指出 Hive Server 所在節點,并且在該節點啟動 Hive Server。 WUI 是通過瀏覽器訪問 Hive。
2.元數據存儲:通常是存儲在關系數據庫如 mysql, derby 中
3.解釋器、編譯器、優化器、執行器:完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃的生成。生成的查詢計劃存儲在 HDFS 中,并在隨后有MapReduce 調用執行。
4.Hadoop:Hive中數據用 HDFS 進行存儲,利用 MapReduce 進行計算。
Hive源碼編譯:
我們選取CDH版本進行編譯,以hive-1.1.0-cdh5.7.0版本為例。
前期準備:
1.配置jdk1.7環境。
2.安裝maven。
3.安裝hadoop-2.6.0-cdh5.7.0環境(版本號與hive要對應)。
注:前期我使用的是Apache 2.8版本的hadoop,目前已經更改為CDH版本
1.下載并解壓源碼包hive-1.1.0-cdh5.7.0-src.tar.gz
# 下載地址: http://archive.cloudera.com/cdh5/cdh/5/
[root@hadoop000 ~]# su - hadoop
[hadoop@hadoop000 ~]$ cd source
[hadoop@hadoop000 source]$ wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0-src.tar.gz
[hadoop@hadoop000 source]$ tar -xzvf hive-1.1.0-cdh5.7.0-src.tar.gz
2.編譯
[hadoop@hadoop000 source]$ cd hive-1.1.0-cdh5.7.0
# 需等待一段時間
[hadoop@hadoop000 hive-1.1.0-cdh5.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] ------------------------------------------------------------------------
# 編譯成功 會在源碼目錄下面的packaging/target目錄下面生成一個tar包,相關的hive模塊jar包都能在這個tar包里面找到。
文件名稱:apache-hive-1.1.0-cdh5.7.0-bin.tar.gz
# 可使用此包來安裝Hive,也可在此網站http://archive.cloudera.com/cdh5/cdh/5/ 直接下載相應版本已編譯的安裝包。
智能推薦
HIVE(1)簡介及基本工作原理
表和數據的映射關系: 1.建表 表結構根據處理的數據來決定 2.描述表結構的信息叫做表的元數據 3.指定處理數據的位置 2和3 都儲存在mysql中 啟動hive的流程: 0啟動mysql服務service mysqld start 1開啟hdfs :start-dfs.sh 2.啟動hive服務:nohup hive --service metastore 1>/dev/null 2>...
數倉簡介及hive全面總結
1. 數據倉庫主要特征 數據倉庫是面向主題的(Subject-Oriented)、集成的(Integrated)、穩定的(Non-Volatile)和時變的(Time-Variant)數據集合,用以支持管理決策。 主題性:指的是分析的需求 集成性:數據倉庫中數據來源于各個數據源,將各個數據源聚合在一起 穩定性:存在數據倉庫的數據,都是已經發生過得數據,這些數據不允許修改 時變性:隨著時...
hive簡介及hive+mysql 初始化
1、Hive簡介 Hive 是建立在 Hadoop 上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數據。同時,這個語言也允許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reduce...
Hive學習筆記(一)-- Hive簡介及基本概念
文章目錄 一、Hive簡介 1.1 Hive是什么 1.2 Hive可以做什么 1.3 Hive典型的應用場景 1.4 Hive不能做什么 二、Hive的基本概念 2.1 Hive的數據模型 2.2 數據類型 2.3 客戶端與命令 一、Hive簡介 1.1 Hive是什么 hive是一個構建在Hadoop之上的數據倉庫 和傳統的數據倉庫一樣的點 主要用來訪問和管理數據(作為數據倉庫,供存放各種上報...
Hive 系列(一)—— Hive 簡介及核心概念
一、簡介 Hive是一個構建在Hadoop之上的數據倉庫,它可以將結構化的數據文件映射成表,并提供類SQL查詢功能,用于查詢的SQL語句會被轉化為MapReduce作業,然后提交到Hadoop上運行。 特點: 簡單、容易上手(提供了類似sql的查詢語言hql),使得精通sql但是不了解Java編程的人也能很好地進行大數據分析; 靈活性高,可以自定義用戶函數(UDF)和存儲格式; 為超大的數據集設計...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...