1. 理解hive存在的原因;
2. 理解hive的工作原理;
3. 理解hive的體系架構;
4. 並學會如何進行內嵌模式部署;
5. 啟動hive,然後將元資料儲存在hdfs上。
1. 完成hive的內嵌模式部署;
2. 能夠
將hive資料儲存在
hdfs
上;3. 待hive環境搭建好後,能夠啟動並執行一般命令。
hive是
hadoop
大資料生態圈中的資料倉儲,其提供以**的方式來組織與管理
hdfs
上的資料、以類
sql的方式來操作**裡的資料,
hive
的設計目的是能夠以類
sql的方式查詢存放在
hdfs
上的大規模資料集,不必開發專門的
mapreduce
應用。
hive本質上相當於乙個
mapreduce
和hdfs
的翻譯終端,使用者提交
hive
指令碼後,
hive
執行時環境會將這些指令碼翻譯成
mapreduce
和hdfs
操作並向集群提交這些操作。
當使用者向hive提交其編寫的
hiveql
後,首先,
hive
執行時環境會將這些指令碼翻譯成
mapreduce
和hdfs
操作,緊接著,
hive
執行時環境使用
hadoop
命令列介面向
hadoop
集群提交這些
mapreduce
和hdfs
操作,最後,
hadoop
集群逐步執行這些
mapreduce
和hdfs
操作,整個過程可概括如下:
(1)使用者編寫
hiveql
並向hive
執行時環境提交該
hiveql。
(2)hive
執行時環境將該
hiveql
翻譯成mapreduce
和hdfs
操作。
(3)hive
執行時環境呼叫
hadoop
命令列介面或程式介面,向
hadoop
集群提交翻譯後的
hiveql。
(4)hadoop
集群執行
hiveql
翻譯後的或。
由上述執行過程可知,hive的核心是其執行時環境,該環境能夠將類
sql語句編譯成
mapreduce。
hive構建在基於靜態批處理的
hadoop
之上,hadoop
通常都有較高的延遲並且在作業提交和排程的時候需要大量的開銷。因此,
hive
並不能夠在大規模資料集上實現低延遲快速的查詢,例如,
hive
在幾百mb
的資料集上執行查詢一般有分鐘級的時間延遲。
因此,hive 並不適合那些需要低延遲的應用,例如,聯機事務處理(
oltp
)。hive
查詢操作過程嚴格遵守
hadoop mapreduce
的作業執行模型,
hive
將使用者的
hiveql
語句通過直譯器轉換為
mapreduce
作業提交到
hadoop
集群上,
hadoop
監控作業執行過程,然後返回作業執行結果給使用者。
hive
並非為聯機事務處理而設計,
hive
並不提供實時的查詢和基於行級的資料更新操作。
hive
的最佳使用場合是大資料集的批處理作業,例如,網路日誌分析。
hive架構與基本組成如圖10-1所示:
圖10-1 hive體系結構
相對於其他元件,hive部署要複雜得多,按
metastore
儲存位置的不同,其部署模式分為內嵌模式、本地模式和完全遠端模式三種。當使用完全模式時,可以提供很多使用者同時訪問並操作
hive
,並且此模式還提供各類介面(
beeline
,cli
,甚至是
pig),這裡我們以內嵌模式為例。
由於使用內嵌模式時,其hive會使用內建的
derby
資料庫來儲存資料庫,此時無須考慮資料庫部署連線問題,整個部署過程可概括如下。
在client機上操作:首先確定存在hive
[root@client~]# ls /usr/cstor/
hive/
[root @client~]#
先為hive配置
hadoop
安裝路徑。
待解壓完成後,進入hive的配置資料夾
conf
目錄下,接著將
hive
的環境變數模板檔案複製成環境變數檔案。
[root@client~]# cd /usr/cstor/hive/conf
[root@client conf]# cp hive-env.sh.template hive-env.sh
[root@client conf]# vim hive-env.sh
在配置檔案中加入以下語句:
hadoop_home=/usr/cstor/hadoop
然後在hdfs裡新建
hive
的儲存目錄。
在hdfs中
新建/tmp 和
/usr/hive/warehouse 兩個檔案
目錄,並對同組使用者增加寫許可權。
[root@client hadoop]# bin/hadoop fs -mkdir /tmp
[root@client hadoop]# bin/hadoop fs -mkdir -p /usr/hive/warehouse
[root@client hadoop]# bin/hadoop fs -chmod g+w /tmp
[root@client hadoop]# bin/hadoop fs -chmod g+w /usr/hive/warehouse
在內嵌模式下,啟動hive指的是啟動
hive
執行時環境,使用者可使用下述命令進入
hive
執行時環境。
啟動hive命令列:
[root@client ~]# cd /usr/cstor/hive/
[root@client hive ]# bin/hive
使用「bin/hive
」命令進入hive環境驗證hive是否啟動成功。如圖10-2所示:
[root@client hive ]# bin/hive
最簡單的zookeeper分布式部署
分布式部署 1.上傳到目標主機,通常我們使用3臺主機進行部署 2.分別解壓縮 tar zxvf zookeeper 3.4.10.tar.gz 3.分別在conf目錄下建立zoo.cfg檔案,內容如下 ticktime 2000 initlimit 5 synclimit 2 datadir tmp...
CDH部署 全網最簡單CDH6 2 0環境部署
主機規劃 sparkproject1 manager 8g 50gb sparkproject2 agent 4g 50gb sparkproject3 agent 4g 50gb 可參考hadoop中linux基本配置那篇文章 hadoop部署 hadoop環境部署1 linux基礎設定 syst...
hive的簡單操作
hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料表,並提供類sql查詢功能 類sql的本質就是將sql轉換成mapreduce程式 主要用於做離線資料分析,比直接用mapreduce程式開發效率更高。hive利用hdfs儲存資料,利用mapreduce查詢分析資料 ...