第03章-Hive分布式數(shù)據(jù)倉庫_第1頁
第03章-Hive分布式數(shù)據(jù)倉庫_第2頁
第03章-Hive分布式數(shù)據(jù)倉庫_第3頁
第03章-Hive分布式數(shù)據(jù)倉庫_第4頁
第03章-Hive分布式數(shù)據(jù)倉庫_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

汪孟德/wwx7118422020.03.12黃浩洋/hwx690472優(yōu)化Hive技術(shù)原理ApacheHive數(shù)據(jù)倉庫軟件有助于使用SQL讀取,寫入和管理駐留在分布式存儲(chǔ)中的大型數(shù)據(jù)集。可以將結(jié)構(gòu)投影到已經(jīng)存儲(chǔ)的數(shù)據(jù)上。提供了命令行工具和JDBC驅(qū)動(dòng)程序以將用戶連接到Hive。學(xué)完本章節(jié)后,您將能夠:掌握Hive應(yīng)用場(chǎng)景與基本原理掌握Hive的架構(gòu)和運(yùn)行流程熟悉常用HiveSQL語句Hive概述Hive功能與架構(gòu)Hive基本操作Hive簡(jiǎn)介Hive是基于Hadoop的數(shù)據(jù)倉庫軟件,可以查詢和管理PB級(jí)別的分布式數(shù)據(jù)。Hive特性:靈活方便的ETL(extract/transform/load)。支持Tez,Spark等多種計(jì)算引擎??芍苯釉L問HDFS文件以及HBase。易用易編程。Hive的應(yīng)用場(chǎng)景數(shù)據(jù)挖掘每天/每周用戶點(diǎn)擊數(shù)流量統(tǒng)計(jì)非實(shí)時(shí)分析日志分析文本分析數(shù)據(jù)匯總用戶行為分析興趣分區(qū)區(qū)域展示數(shù)據(jù)倉庫數(shù)據(jù)抽取數(shù)據(jù)加載數(shù)據(jù)轉(zhuǎn)換Hive與傳統(tǒng)數(shù)據(jù)倉庫比較(1)Hive傳統(tǒng)數(shù)據(jù)倉庫存儲(chǔ)HDFS,理論上有無限拓展的可能。集群存儲(chǔ),存在容量上限,而且伴隨容量的增長(zhǎng),計(jì)算速度急劇下降只能適應(yīng)于數(shù)據(jù)量比較小的商業(yè)應(yīng)用,對(duì)于超大規(guī)模數(shù)據(jù)無能為力。執(zhí)行引擎默認(rèn)執(zhí)行引擎Tez。可以選擇更加高效的算法來執(zhí)行查詢,也可以進(jìn)行更多的優(yōu)化措施來提高速度。使用方式HQL(類似SQL)SQL靈活性元數(shù)據(jù)存儲(chǔ)獨(dú)立于數(shù)據(jù)存儲(chǔ)之外,從而解耦合元數(shù)據(jù)和數(shù)據(jù)。低,數(shù)據(jù)用途單一分析速度計(jì)算依賴于集群規(guī)模,易拓展,在大數(shù)據(jù)量情況下,遠(yuǎn)遠(yuǎn)快于普通數(shù)據(jù)倉庫。在數(shù)據(jù)容量較小時(shí)非??焖伲瑪?shù)據(jù)量較大時(shí),急劇下降。Hive與傳統(tǒng)數(shù)據(jù)倉庫比較(2)Hive傳統(tǒng)數(shù)據(jù)倉庫索引效率較低。高效。易用性需要自行開發(fā)應(yīng)用模型,靈活度較高,但是易用性較低。集成一整套成熟的的報(bào)表解決方案,可以較為方便的進(jìn)行數(shù)據(jù)的分析??煽啃詳?shù)據(jù)存儲(chǔ)在HDFS,可靠性高,容錯(cuò)性高??煽啃暂^低,一次查詢失敗需要重新開始。數(shù)據(jù)容錯(cuò)依賴于硬件Raid。依賴環(huán)境依賴硬件較低,可適應(yīng)一般的普通機(jī)器。依賴于高性能的商業(yè)服務(wù)器。價(jià)格開源產(chǎn)品。商用比較昂貴。Hive的優(yōu)點(diǎn)1.HiveServer采用集群模式2.雙MetaStore3.超時(shí)重試機(jī)制高可靠、高容錯(cuò)1類SQL2可擴(kuò)展3多接口4Hive的優(yōu)點(diǎn)1.類似SQL語法2.內(nèi)置大量函數(shù)1.自定義存儲(chǔ)格式2.自定義函數(shù)1.Beeline2.JDBC3.Thrift4.ODBCHive概述Hive功能與架構(gòu)Hive基本操作Hive的架構(gòu)Driver(Compiler,Optimizer,Executor)MetaStoreThriftServerWebInterfaceJDBCODBCHiveTezMapReduceSparkHive運(yùn)行流程Client提交HQL命令Tez執(zhí)行查詢YARN為群集中的應(yīng)用程序分配資源,并為YARN隊(duì)列中的Hive作業(yè)啟用授權(quán)。Hive根據(jù)表類型更新HDFS或Hive倉庫中的數(shù)據(jù)。Hive通過JDBC連接返回查詢結(jié)果。HQL語句HiveYarnTez(default)HDFSHive數(shù)據(jù)存儲(chǔ)模型數(shù)據(jù)庫表表傾斜數(shù)據(jù)分區(qū)分區(qū)桶桶桶桶正常數(shù)據(jù)Hive數(shù)據(jù)存儲(chǔ)模型–分區(qū)和分桶分區(qū):數(shù)據(jù)表可以按照某個(gè)字段的值劃分分區(qū)。每個(gè)分區(qū)是一個(gè)目錄。分區(qū)數(shù)量不固定。分區(qū)下可再有分區(qū)或者桶。桶:數(shù)據(jù)可以根據(jù)桶的方式將不同數(shù)據(jù)放入不同的桶中。每個(gè)桶是一個(gè)文件。建表時(shí)指定桶個(gè)數(shù),桶內(nèi)可排序。數(shù)據(jù)按照某個(gè)字段的值Hash后放入某個(gè)桶中。Hive數(shù)據(jù)存儲(chǔ)模型-托管表和外部表Hive可以創(chuàng)建托管表和外部表:創(chuàng)建Hive表,Hive會(huì)將數(shù)據(jù)移動(dòng)到數(shù)據(jù)倉庫目錄。如果所有處理都由Hive完成,建議使用托管表。如果要用Hive和其它工具來處理同一個(gè)數(shù)據(jù)集,建議使用外部表。托管表外部表DROP元數(shù)據(jù)和數(shù)據(jù)會(huì)被一起刪除只刪除元數(shù)據(jù)Hive支持的函數(shù)Hive內(nèi)置函數(shù):數(shù)學(xué)函數(shù),如round(),floor(),abs(),rand()等日期函數(shù),如to_date(),month(),day()等字符串函數(shù),如trim(),length(),substr()等UDF

(User-DefinedFuncation)Hive概述Hive功能與架構(gòu)Hive基本操作Hive使用方式RunningHiveServer2andBeelineRunningHcatalogRunningWebHCat(Templeton)$$HIVE_HOME/bin/hiveserver2$$HIVE_HOME/bin/beeline-ujdbc:hive2://$HS2_HOST:$HS2_PORT$$HIVE_HOME/hcatalog/sbin/hcat_server.sh$$HIVE_HOME/hcatalog/sbin/webhcat_server.shHiveSQL介紹DDL-數(shù)據(jù)定義語言建表,修改表,刪表、分區(qū)、數(shù)據(jù)類型。DML-數(shù)據(jù)管理語言數(shù)據(jù)導(dǎo)入、數(shù)據(jù)導(dǎo)出。DQL-數(shù)據(jù)查詢語言簡(jiǎn)單查詢。復(fù)雜查詢Groupby,Orderby,Join等。DDL操作--創(chuàng)建表--瀏覽表--描述表--修改表hive>CREATETABLEpokes(fooINT,barSTRING);hive>CREATETABLEinvites(fooINT,barSTRING)PARTITIONEDBY(dsSTRING);hive>SHOWTABLES;hive>DESCRIBEinvites;hive>ALTERTABLEeventsRENAMETO3koobecaf;hive>ALTERTABLEpokesADDCOLUMNS(new_colINT);DML操作--向表里加載數(shù)據(jù)--導(dǎo)出數(shù)據(jù)到HDFShive>LOADDATALOCALINPATH'./examples/files/kv1.txt'OVERWRITEINTOTABLEpokes;hive>LOADDATALOCALINPATH'./examples/files/kv2.txt'OVERWRITEINTOTABLEinvitesPARTITION(ds='2008-08-15');EXPORTTABLEinvitesTO'/department';DQL操作(1)--SELECTSandFILTERS--GROUPBYhive>SELECTa.fooFROMinvitesaWHEREa.ds='2008-08-15';hive>INSERTOVERWRITEDIRECTORY'/tmp/hdfs_out'SELECTa.*FROMinvitesaWHEREa.ds='2008-08-15';hive>FROMinvitesaINSERTOVERWRITETABLEeventsSELECTa.bar,count(*)WHEREa.foo>0GROUPBYa.bar;hive>INSERTOVERWRITETABLEeventsSELECTa.bar,count(*)FROMinvitesaWHEREa.foo>0GROUPBYa.bar;DQL操作(2)--MULTITABLEINSERT--JOIN--STREAMINGFROMsrcINSERTOVERWRITETABLEdest1SELECTsrc.*WHEREsrc.key<100INSERTOVERWRITETABLEdest2SELECTsrc.key,src.valueWHEREsrc.key>=100andsrc.key<200;hive>FROMpokest1JOINinvitest2ON(t1.bar=t2.bar)INSERTOVERWRITETABLEeventsSELECTt1.bar,t1.foo,t2.foo;hive>FROMinvitesaINSERTOVERWRITETABLEeventsSELECTTRANSFORM(a.foo,a.bar)AS(oof,rab)USING'/bin/cat'WHEREa.ds>'2008-08-09';通過本章的學(xué)習(xí),介紹了Hive應(yīng)用場(chǎng)景與基本原理,然后介紹了Hive的架構(gòu)和運(yùn)行流程以及常用的HiveSQL語句。以下哪些是Hive適用的場(chǎng)景?()實(shí)時(shí)的在線數(shù)據(jù)分析數(shù)據(jù)挖掘(用戶行為分析,興趣分區(qū),區(qū)域展示)數(shù)據(jù)匯總(每天/每周用戶點(diǎn)擊數(shù),點(diǎn)擊排行)非實(shí)時(shí)分析(日志分析,統(tǒng)計(jì)分析)以下關(guān)于Hiv

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論