Hive基礎(chǔ)多媒體課件_第1頁
Hive基礎(chǔ)多媒體課件_第2頁
Hive基礎(chǔ)多媒體課件_第3頁
Hive基礎(chǔ)多媒體課件_第4頁
Hive基礎(chǔ)多媒體課件_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Hive基礎(chǔ)

12Hive結(jié)構(gòu)Hive基礎(chǔ)操作目錄3Hive的MAP/RED34山東現(xiàn)場(chǎng)實(shí)際應(yīng)用Hive結(jié)構(gòu)圖數(shù)據(jù)存儲(chǔ)

Hive數(shù)據(jù)以文件形式存儲(chǔ)在HDFS的指定目錄下Hive語句生成查詢計(jì)劃,由MapReduce調(diào)用執(zhí)行用戶接口

解析器:生成抽象語法樹語法分析器:驗(yàn)證查詢語句邏輯計(jì)劃生成器(包括優(yōu)化器):生成操作符樹查詢計(jì)劃生成器:轉(zhuǎn)換為map-reduce任務(wù)CLI:?jiǎn)?dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè)Hive副本Client:Hive的客戶端,用戶連接至HiveServerWUI:通過瀏覽器訪問Hive語句轉(zhuǎn)換Hive元數(shù)據(jù)表名說明關(guān)聯(lián)鍵BUCKETING_COLSHive表CLUSTEREDBY字段信息(字段名,字段序號(hào))SD_ID

,INTEGER_IDXCOLUMNS_V2Hive表字段信息(字段注釋,字段名,字段類型,字段序號(hào))CD_IDDBS元數(shù)據(jù)庫(kù)信息,保存HDFS中存放hive表的路徑DB_IDPARTITION_KEYSHive分區(qū)表分區(qū)鍵TBL_IDSDS所有hive表、表分區(qū)所對(duì)應(yīng)的hdfs數(shù)據(jù)目錄和數(shù)據(jù)格式。SD_ID,CD_IDSD_PARAMS序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等SD_IDSEQUENCE_TABLE保存了hive對(duì)象的下一個(gè)可用ID

SERDES指定ROWFORMATSERDE的類型,即序列化時(shí)的一些參數(shù)

SERDE_PARAMS序列化反序列化信息,如行分隔符、列分隔符、NULL的表示字符等

SERDE_IDTABLE_PARAMS表級(jí)屬性,如是否外部表,表注釋等TBL_IDTBLS所有hive表的基本信息TBL_ID,SD_ID元數(shù)據(jù)存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)如mysql,derby,oracle中解析用戶提交hive語句,對(duì)其進(jìn)行解析,分解為表、字段、分區(qū)等hive對(duì)象根據(jù)解析到的信息構(gòu)建對(duì)應(yīng)的表、字段、分區(qū)等對(duì)象,從SEQUENCE_TABLE中獲取構(gòu)建對(duì)象的最新ID,與構(gòu)建對(duì)象信息(名稱,類型等)一同寫入到元數(shù)據(jù)表中去,成功后將SEQUENCE_TABLE中對(duì)應(yīng)的最新ID+5。Hive和普通關(guān)系數(shù)據(jù)庫(kù)的異同數(shù)據(jù)存儲(chǔ)數(shù)據(jù)格式數(shù)據(jù)更新執(zhí)行延遲Hive是建立在Hadoop之上的,所有Hive的數(shù)據(jù)都是存儲(chǔ)在HDFS中的。數(shù)據(jù)庫(kù)則可以將數(shù)據(jù)保存在塊設(shè)備或者本地文件系統(tǒng)中Hive中沒有定義專門的數(shù)據(jù)格式,由用戶指定,需要指定三個(gè)屬性:列分隔符,行分隔符,以及讀取文件數(shù)據(jù)的方法數(shù)據(jù)庫(kù)中,存儲(chǔ)引擎定義了自己的數(shù)據(jù)格式。所有數(shù)據(jù)都會(huì)按照一定的組織存儲(chǔ)Hive在查詢數(shù)據(jù)的時(shí)候,需要掃描整個(gè)表(或分區(qū)),因此延遲較高,因此hive只有在處理大數(shù)據(jù)時(shí)才有優(yōu)勢(shì)數(shù)據(jù)庫(kù)在處理小數(shù)據(jù)時(shí)執(zhí)行延遲較低HiveVSRDBMSHive的內(nèi)容是讀多寫少的因此,不支持對(duì)數(shù)據(jù)的改寫和刪除,數(shù)據(jù)都是在加載的時(shí)候中確定好的數(shù)據(jù)庫(kù)中的數(shù)據(jù)通常是需要經(jīng)常進(jìn)行修改12Hive結(jié)構(gòu)Hive基礎(chǔ)操作目錄3Hive的MAP/RED34山東現(xiàn)場(chǎng)實(shí)際應(yīng)用Hive客戶端CLILoad,Insertusage:hive-d,--define<key=value>-e<quoted-query-string>-f<>-h<hostname>--hiveconf<property=value>--hivevar<key=value>-i<>-S,--silent-v,--verboseCommandDescriptionquit

exitUsequitorexittoleavetheinteractiveshell.resetResetstheconfigurationtothedefaultvalues(asofHive0.10:seeHIVE-3202).set<key>=<value>Setsthevalueofaparticularconfigurationvariable(key).

Note:Ifyoumisspellthevariablename,theCLIwillnotshowanerror.setPrintsalistofconfigurationvariablesthatareoverriddenbytheuserorHive.set-vPrintsallHadoopandHiveconfigurationvariables.addFILE[S]<><>*

addJAR[S]<><>*Addsoneormorefiles,jarstothelistofresourcesinthedistributedcache.listFILE[S]

listJAR[S]Liststheresourcesalreadyaddedtothedistributedcache.listFILE[S]<>*

listJAR[S]<>*Checkswhetherthegivenresourcesarealreadyaddedtothedistributedcacheornot.deleteFILE[S]<>*

deleteJAR[S]<>*Removestheresource(s)fromthedistributedcache.!<command>ExecutesashellcommandfromtheHiveshell.dfs<dfscommand>ExecutesadfscommandfromtheHiveshell.<querystring>ExecutesaHivequeryandprintsresultstostandardoutput.sourceFILE<>ExecutesascripttheCLI.DDLDMLCreate/DropDatabaseCreate/DropTableAlterTable/PartitionCreate/DropViewCreate/DropFunctionCreate/DropIndexShow/DescribeCREATETABLEa_test_ms(op_timestring,event_namestring)PARTITIONEDBY(pt_time_string)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'STOREDASTEXTFILELOCATION'hdfs://ocdccluster/asiainfo/SDDW/ODS/a_test_ms';Load語法:LOADDATA[LOCAL]INPATH''[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]Load操作只是單純的復(fù)制/移動(dòng)操作,將數(shù)據(jù)文件移動(dòng)到Hive表對(duì)應(yīng)的位置??梢允潜镜芈窂?,也可以是HDFS的路徑加載的目標(biāo)可以是一個(gè)表或者分區(qū)(靜態(tài)分區(qū))。如果表包含分區(qū),必須指定每一個(gè)分區(qū)的分區(qū)名在load時(shí)hive會(huì)檢查加載的數(shù)據(jù)文件與建表時(shí)指定的是否匹配Insert語法:INSERTINTO/OVERWRITETABLEtablename1[PARTITION(partcol1=val1,partcol2=val2...)]select_statement1FROMfrom_statement;INSERTOVERWRITE[LOCAL]DIRECTORYdirectory1SELECT...FROM...Inser語句可以把select語句查詢出來的記錄插入到目標(biāo)表中,也可以把查出的記錄以文件的形式導(dǎo)出到本地SelectJoins語法:SELECT[ALL|DISTINCT]select_expr,select_expr,...FROMtable_reference[WHEREwhere_condition][GROUPBYcol_list][CLUSTERBYcol_list|[DISTRIBUTEBYcol_list][SORTBYcol_list]][LIMITnumber]group:進(jìn)行聚合orderby:全局排序,一個(gè)reducesortby:?jiǎn)螜C(jī)排序,多個(gè)reduceDISTRIBUTEBY:按照指定的字段對(duì)數(shù)據(jù)進(jìn)行劃分到不同的輸出reduce/文件中。與sortby配合使用,避免數(shù)據(jù)的重疊和丟失CLUSTERBY:等于DistributeBy+SortBy,倒序排序語法:table_referenceJOINtable_factor[join_condition]|table_reference{LEFT|RIGHT|FULL}[OUTER]JOINtable_referencejoin_condition|table_referenceLEFTSEMIJOINtable_referencejoin_condition|table_referenceCROSSJOINtable_reference[join_condition](asofHive0.10)Hive只支持等值連接(equalityjoins)、外連接(outerjoins)和(left/rightjoins)。Hive支持多于2個(gè)表的連接。LEFTSEMIJOIN是IN/EXISTS子查詢的一種更高效的實(shí)現(xiàn)12Hive結(jié)構(gòu)Hive基礎(chǔ)操作目錄3Hive的MAP/RED34山東現(xiàn)場(chǎng)實(shí)際應(yīng)用JOINMap:

以O(shè)N條件中的列作為Key,如果有多個(gè)列,則Key是這些列的組合

以JOIN之后所關(guān)心的列作為Value,當(dāng)有多個(gè)列時(shí),Value是這些列的組合。按照Key進(jìn)行排序。

Shuffle:

根據(jù)Key的值進(jìn)行Hash,并將Key/Value對(duì)按照Hash值推至不同對(duì)的Reduce中。

Reduce:

Reducer根據(jù)Key值進(jìn)行Join操作語句:SELECTa.pageid,b.ageFROMpage_viewaJOINuserbON(a.userid=b.userid);GROUPBY語句:SELECTpageid,age,count(1)FROMpv_usersGROUPBYpageid,age;數(shù)據(jù)量大不是問題,數(shù)據(jù)傾斜是個(gè)問題。

jobs數(shù)比較多的作業(yè)運(yùn)行效率相對(duì)比較低。

count(distinct)效率較低計(jì)算框架優(yōu)化手段Join優(yōu)化不要求全局有序時(shí)使用DistributeBy+SortBy來排序如果全局有序是為了得到排名靠前的結(jié)果,剛使用limit子句來減少數(shù)據(jù)量。解決數(shù)據(jù)傾斜問題。減少job數(shù)。設(shè)置合理的mapreduce的task數(shù)對(duì)小文件進(jìn)行合并使用MAPJOIN()會(huì)將較小的表

加載到內(nèi)存中,使連結(jié)過程在Map階段完成Hive優(yōu)化排序優(yōu)化12Hive結(jié)構(gòu)Hive基礎(chǔ)操作目錄3Hive的MAP/RED34山東現(xiàn)場(chǎng)實(shí)際應(yīng)用節(jié)點(diǎn)HQLOCDC平臺(tái)HQL執(zhí)行步驟后臺(tái)調(diào)度10.17.254.12hiveServer服務(wù)10.17.254.12Map/reduce從OCDC平臺(tái)的執(zhí)行監(jiān)控中,可以找到HQL對(duì)應(yīng)的jobid,通過jobid可以在jobtracker

溫馨提示

  • 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. 人人文庫(kù)網(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)論