北京營銷型網(wǎng)站建設(shè)價(jià)格西安百度推廣運(yùn)營公司
文章目錄
- 一、實(shí)驗(yàn)?zāi)康?/li>
- 二、實(shí)驗(yàn)要求
- 三、實(shí)驗(yàn)原理
- 四、實(shí)驗(yàn)環(huán)境
- 五、實(shí)驗(yàn)內(nèi)容和步驟
- (一)安裝部署
- (二)配置HDFS
- (三)啟動(dòng)Hive
- 六、實(shí)驗(yàn)結(jié)果
- (一)啟動(dòng)結(jié)果
- (二)Hive基本命令
- 七、實(shí)驗(yàn)心得
一、實(shí)驗(yàn)?zāi)康?/h3>
- 理解Hive存在的原因;
- 理解Hive的工作原理;
- 理解Hive的體系架構(gòu);
- 并學(xué)會(huì)如何進(jìn)行內(nèi)嵌模式部署;
- 啟動(dòng)Hive,然后將元數(shù)據(jù)存儲(chǔ)在HDFS上。
二、實(shí)驗(yàn)要求
- 完成Hive的內(nèi)嵌模式部署;
- 能夠?qū)ive數(shù)據(jù)存儲(chǔ)在HDFS上;
- 待Hive環(huán)境搭建好后,能夠啟動(dòng)并執(zhí)行一般命令。
三、實(shí)驗(yàn)原理
Hive是Hadoop 大數(shù)據(jù)生態(tài)圈中的數(shù)據(jù)倉庫,其提供以表格的方式來組織與管理HDFS上的數(shù)據(jù)、以類SQL的方式來操作表格里的數(shù)據(jù),Hive的設(shè)計(jì)目的是能夠以類SQL的方式查詢存放在HDFS上的大規(guī)模數(shù)據(jù)集,不必開發(fā)專門的MapReduce應(yīng)用。
Hive本質(zhì)上相當(dāng)于一個(gè)MapReduce和HDFS的翻譯終端,用戶提交Hive腳本后,Hive運(yùn)行時(shí)環(huán)境會(huì)將這些腳本翻譯成MapReduce和HDFS操作并向集群提交這些操作。
當(dāng)用戶向Hive提交其編寫的HiveQL后,首先,Hive運(yùn)行時(shí)環(huán)境會(huì)將這些腳本翻譯成MapReduce和HDFS操作,緊接著,Hive運(yùn)行時(shí)環(huán)境使用Hadoop命令行接口向Hadoop集群提交這些MapReduce和HDFS操作,最后,Hadoop集群逐步執(zhí)行這些MapReduce和HDFS操作,整個(gè)過程可概括如下:
(1)用戶編寫HiveQL并向Hive運(yùn)行時(shí)環(huán)境提交該HiveQL。
(2)Hive運(yùn)行時(shí)環(huán)境將該HiveQL翻譯成MapReduce和HDFS操作。
(3)Hive運(yùn)行時(shí)環(huán)境調(diào)用Hadoop命令行接口或程序接口,向Hadoop集群提交翻譯后的HiveQL。
(4)Hadoop集群執(zhí)行HiveQL翻譯后的MapReduce-APP或HDFS-APP。
由上述執(zhí)行過程可知,Hive的核心是其運(yùn)行時(shí)環(huán)境,該環(huán)境能夠?qū)㈩怱QL語句編譯成MapReduce。
Hive構(gòu)建在基于靜態(tài)批處理的Hadoop之上,Hadoop通常都有較高的延遲并且在作業(yè)提交和調(diào)度的時(shí)候需要大量的開銷。因此,Hive并不能夠在大規(guī)模數(shù)據(jù)集上實(shí)現(xiàn)低延遲快速的查詢,例如,Hive在幾百M(fèi)B的數(shù)據(jù)集上執(zhí)行查詢一般有分鐘級的時(shí)間延遲。
因此,Hive并不適合那些需要低延遲的應(yīng)用,例如,聯(lián)機(jī)事務(wù)處理(OLTP)。Hive查詢操作過程嚴(yán)格遵守Hadoop MapReduce的作業(yè)執(zhí)行模型,Hive將用戶的HiveQL語句通過解釋器轉(zhuǎn)換為MapReduce作業(yè)提交到Hadoop集群上,Hadoop監(jiān)控作業(yè)執(zhí)行過程,然后返回作業(yè)執(zhí)行結(jié)果給用戶。Hive并非為聯(lián)機(jī)事務(wù)處理而設(shè)計(jì),Hive 并不提供實(shí)時(shí)的查詢和基于行級的數(shù)據(jù)更新操作。Hive的最佳使用場合是大數(shù)據(jù)集的批處理作業(yè),例如,網(wǎng)絡(luò)日志分析。
Hive架構(gòu)與基本組成如圖所示:
四、實(shí)驗(yàn)環(huán)境
- 云創(chuàng)大數(shù)據(jù)實(shí)驗(yàn)平臺(tái):
- Java 版本:jdk1.7.0_79
- Hadoop 版本:hadoop-2.7.1
- Hive 版本:hive-1.2.1
五、實(shí)驗(yàn)內(nèi)容和步驟
相對于其他組件,Hive部署要復(fù)雜得多,按metastore存儲(chǔ)位置的不同,其部署模式分為內(nèi)嵌模式、本地模式和完全遠(yuǎn)程模式三種。當(dāng)使用完全模式時(shí),可以提供很多用戶同時(shí)訪問并操作Hive,并且此模式還提供各類接口(BeeLine,CLI,甚至是Pig),這里我們以內(nèi)嵌模式為例。
由于使用內(nèi)嵌模式時(shí),其Hive會(huì)使用內(nèi)置的Derby數(shù)據(jù)庫來存儲(chǔ)數(shù)據(jù)庫,此時(shí)無須考慮數(shù)據(jù)庫部署連接問題,整個(gè)部署過程可概括如下。
(一)安裝部署
在master機(jī)上操作:首先確定存在Hive
ls /usr/cstor/hive/
(二)配置HDFS
先為Hive配置Hadoop安裝路徑。
待解壓完成后,進(jìn)入Hive的配置文件夾conf目錄下,接著將Hive的環(huán)境變量模板文件復(fù)制成環(huán)境變量文件。
cd /usr/cstor/hive/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
這里使用cp命令而不是mv命令,是因?yàn)槲覀兛梢詡浞菀环葜暗奈募?#xff0c;我們只是復(fù)制一份修改,而不是替換。
在配置文件中加入以下語句:
HADOOP_HOME=/usr/cstor/hadoop
然后在HDFS里新建Hive的存儲(chǔ)目錄,進(jìn)入hadoop的bin
目錄內(nèi):
cd /usr/cstor/hadoop/
在HDFS中新建/tmp
和/usr/hive/warehouse
兩個(gè)文件目錄,并對同組用戶增加寫權(quán)限。
bin/hadoop fs -mkdir /tmp
bin/hadoop fs -mkdir -p /usr/hive/warehouse
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /usr/hive/warehouse
(三)啟動(dòng)Hive
在內(nèi)嵌模式下,啟動(dòng)Hive指的是啟動(dòng)Hive運(yùn)行時(shí)環(huán)境,用戶可使用下述命令進(jìn)入Hive運(yùn)行時(shí)環(huán)境。
啟動(dòng)Hive命令行:
cd /usr/cstor/hive/
bin/hive
六、實(shí)驗(yàn)結(jié)果
(一)啟動(dòng)結(jié)果
使用bin/hive
命令進(jìn)入Hive環(huán)境驗(yàn)證Hive是否啟動(dòng)成功。
cd /usr/cstor/hive/
bin/hive
(二)Hive基本命令
進(jìn)入Hive環(huán)境后,使用show tables
,show function
后如下圖所示則表示配置成功。
顯示表:
show tables;
因?yàn)槟壳拔覀儧]有創(chuàng)建表所以返回了一個(gè)OK。
顯示Hive內(nèi)置函數(shù):
show functions;
退出Hive環(huán)境:
exit;
七、實(shí)驗(yàn)心得
??通過本次Hive部署實(shí)驗(yàn),我深刻理解了Hive在Hadoop大數(shù)據(jù)生態(tài)圈中的重要地位和作用。Hive作為一個(gè)數(shù)據(jù)倉庫,不僅提供了以表格方式組織和管理HDFS上數(shù)據(jù)的便利,更以類SQL的方式簡化了對大規(guī)模數(shù)據(jù)集的操作,極大地降低了開發(fā)成本。
??在實(shí)驗(yàn)過程中,我學(xué)習(xí)了Hive的內(nèi)嵌模式部署方法,掌握了如何將Hive數(shù)據(jù)存儲(chǔ)在HDFS上,并成功啟動(dòng)了Hive環(huán)境。通過實(shí)際操作,我深刻體會(huì)到了Hive環(huán)境搭建的復(fù)雜性和細(xì)致性,每一個(gè)步驟都需要謹(jǐn)慎操作,稍有疏忽就可能導(dǎo)致部署失敗。
??同時(shí),我也認(rèn)識到Hive并非為聯(lián)機(jī)事務(wù)處理而設(shè)計(jì),其查詢操作過程嚴(yán)格遵守Hadoop MapReduce的作業(yè)執(zhí)行模型,因此在大規(guī)模數(shù)據(jù)集上實(shí)現(xiàn)低延遲快速查詢方面存在一定的局限性。這使我更加明確了Hive的最佳使用場合——大數(shù)據(jù)集的批處理作業(yè)。此外,我還學(xué)會(huì)了使用Hive的基本命令,如查看表格和函數(shù)等,這些命令為我在后續(xù)的實(shí)驗(yàn)和學(xué)習(xí)中提供了有力的支持。
??總之,本次Hive部署實(shí)驗(yàn)不僅讓我掌握了Hive的部署和使用方法,更讓我對Hive的工作原理和體系架構(gòu)有了更深入的理解。我相信,在未來的學(xué)習(xí)和工作中,我將能夠更好地運(yùn)用Hive來處理和分析大規(guī)模數(shù)據(jù)集。
附:以上文中的數(shù)據(jù)文件及相關(guān)資源下載地址:
鏈接:https://pan.quark.cn/s/b0f6f0d06704
提取碼:PNp2