




版權(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ù)庫信息,保存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ù)庫如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ù)庫的異同數(shù)據(jù)存儲(chǔ)數(shù)據(jù)格式數(shù)據(jù)更新執(zhí)行延遲Hive是建立在Hadoop之上的,所有Hive的數(shù)據(jù)都是存儲(chǔ)在HDFS中的。數(shù)據(jù)庫則可以將數(shù)據(jù)保存在塊設(shè)備或者本地文件系統(tǒng)中Hive中沒有定義專門的數(shù)據(jù)格式,由用戶指定,需要指定三個(gè)屬性:列分隔符,行分隔符,以及讀取文件數(shù)據(jù)的方法數(shù)據(jù)庫中,存儲(chǔ)引擎定義了自己的數(shù)據(jù)格式。所有數(shù)據(jù)都會(huì)按照一定的組織存儲(chǔ)Hive在查詢數(shù)據(jù)的時(shí)候,需要掃描整個(gè)表(或分區(qū)),因此延遲較高,因此hive只有在處理大數(shù)據(jù)時(shí)才有優(yōu)勢(shì)數(shù)據(jù)庫在處理小數(shù)據(jù)時(shí)執(zhí)行延遲較低HiveVSRDBMSHive的內(nèi)容是讀多寫少的因此,不支持對(duì)數(shù)據(jù)的改寫和刪除,數(shù)據(jù)都是在加載的時(shí)候中確定好的數(shù)據(jù)庫中的數(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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南丁格爾精神作文
- 血清C反應(yīng)蛋白、降鈣素原及白細(xì)胞計(jì)數(shù)檢測(cè)對(duì)小兒支氣管炎病情及復(fù)發(fā)的評(píng)估價(jià)值
- 2024-2025學(xué)年新教材高中生物 第三章 遺傳的分子基礎(chǔ) 第四節(jié) 基因控制蛋白質(zhì)合成教學(xué)實(shí)錄(2)浙科版必修2
- DB3715-T 21-2022 日光溫室秋延遲番茄水肥一體化生產(chǎn)技術(shù)規(guī)程
- 2024年五年級(jí)英語下冊(cè) Unit 1 Going to Beijing Lesson 3 Who Is Singing教學(xué)實(shí)錄 冀教版(三起)
- 2023七年級(jí)數(shù)學(xué)下冊(cè) 第8章 一元一次方程8.2 解一元一次不等式1不等式的解集教學(xué)實(shí)錄 (新版)華東師大版
- 2024-2025學(xué)年高中政治 第四單元 發(fā)展社會(huì)主義市場(chǎng)經(jīng)濟(jì) 第十一課 第二框 積極參與國際經(jīng)濟(jì)競(jìng)爭(zhēng)與合作教學(xué)實(shí)錄 新人教版必修1
- 2023七年級(jí)語文下冊(cè) 第六單元 課外古詩詞誦讀配套教學(xué)實(shí)錄 新人教版
- 2024年五年級(jí)語文上冊(cè) 第一單元 4 珍珠鳥配套教學(xué)實(shí)錄 新人教版
- 17賽小車(教學(xué)設(shè)計(jì))-2023-2024學(xué)年科學(xué)三年級(jí)下冊(cè)人教鄂教版
- TCCIIP 001-2024 綠色低碳園區(qū)標(biāo)準(zhǔn)
- GB/T 20972.2-2025石油天然氣工業(yè)油氣開采中用于含硫化氫環(huán)境的材料第2部分:抗開裂碳鋼、低合金鋼和鑄鐵
- 美團(tuán)供應(yīng)鏈管理案例分析
- 2025廣東深圳證券交易所及其下屬單位信息技術(shù)專業(yè)人員招聘筆試參考題庫附帶答案詳解
- 陜西省西安市西咸新區(qū)2024年九年級(jí)下學(xué)期中考一模數(shù)學(xué)試題(含答案)
- 2025年內(nèi)蒙古烏蘭察布盟單招職業(yè)適應(yīng)性測(cè)試題庫新版
- 2025年宜春幼兒師范高等??茖W(xué)校單招職業(yè)傾向性測(cè)試題庫含答案
- 《鈉離子電池產(chǎn)業(yè)發(fā)展白皮書》
- 全國交管12123駕駛證學(xué)法減分考試題附答案
- 2025中考作文預(yù)測(cè)
- 油氣田開發(fā)專業(yè)危害因素辨識(shí)與風(fēng)險(xiǎn)防控
評(píng)論
0/150
提交評(píng)論