版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
hive文件操作及UDF壓縮編/解碼器選擇使用壓縮可以最小化所需要的磁盤存儲空間,以及減小磁盤和網(wǎng)絡(luò)I/O操作,不過,文件壓縮和解壓過程會增加CPU開銷。BZip2壓縮率最高,消耗最多CPU開銷;GZip是壓縮率和壓縮/解壓速度上的下一個選擇。LZO和Snappy壓縮率比BZip2和GZip小,但是壓縮/解壓速度要快,特別是解壓縮過程;相對于磁盤空間和I/O開銷,頻繁讀取數(shù)據(jù)所需要的解壓縮速度更重要的話,則選擇它們。壓縮編/解碼器選擇壓縮格式的文件是否可分割,MapReduce需要將非常大的輸入文件分割成多個塊,每個塊劃分到一個單獨的map進(jìn)程處理。Hadoop需要知道文件中記錄的邊界才可以進(jìn)行分割。Gzip和Snappy沒有邊界信息BZip2和LZO提供了塊級別的壓縮,每個塊中都包含完整的記錄信息。開啟中間壓縮對中間數(shù)據(jù)進(jìn)行壓縮可以減少job中map和reducetask間的數(shù)據(jù)傳輸量,選擇一個低CPU開銷的編/解碼器要比選擇一個壓縮率高的編/解碼器更重要。開啟中間壓縮,需要將ermediate參數(shù)設(shè)置為true。Hadoop壓縮默認(rèn)的編/解碼器是DefaultCodec,可以通過pression.codec屬性來修改。使用Gzip進(jìn)行壓縮press.GzipCodec最終輸出結(jié)果壓縮當(dāng)hive將輸出寫入到表中時,輸出內(nèi)容頁可以進(jìn)行壓縮??梢酝ㄟ^press.output屬性來控制。當(dāng)開啟最終輸出結(jié)果壓縮功能時,需要為其指定一個編解碼器,可以通過pression.codec屬性來修改,對于輸出文件,使用Gzip進(jìn)行壓縮,因為它可以大幅度降低文件的大小。文件格式Hive中常用的有三種文件格式TextFile、SequenceFile以及RCFileTextFile:默認(rèn)的文件格式,文本文件格式便于和其他工具共享數(shù)據(jù),便于查看和編輯,但文本文件存儲占用空間較大。SequenceFile:是Hadoop提供的一種二進(jìn)制文件格式,是Hadoop支持的標(biāo)準(zhǔn)文件格式,可以節(jié)約存儲空間,也可以提高I/O性能。
RCfile:hive支持的另一種高效的二進(jìn)制文件格式,RCfile是一種行列存儲相結(jié)合的存儲方式,先將數(shù)據(jù)按行分塊再按列式存儲,保證同一條記錄在一個塊上,避免讀取多個塊,有利于數(shù)據(jù)壓縮和快速進(jìn)行列存儲。Sequencefile存儲格式HDFS和MR主要針對大數(shù)據(jù)文件來設(shè)計,在小文件處理上效率低。針對小文件可以選擇Sequencefile存儲格式,將這些小文件包裝起來,將整個文件作為一條記錄,可以獲取更高效率的儲存和處理,避免多次打開關(guān)閉流耗費計算資源。Sequencefile存儲格式也可以將一個文件劃分成多個塊,采用一種可分割的方式對塊進(jìn)行壓縮。在hive中使用Sequencefile存儲格式createtablesequence_file_table(idint,namestring)ROWFORMATDELIMITEDFIELDSTERMINATEDBY','storedassequencefile;Sequencefile存儲格式SequenceFile采用了3種壓縮方式:NoneRecord(默認(rèn))Block(壓縮性能最好)可以在hadoop的mapred-site.xml文件中,或者在hive的hive-site.xml中定義壓縮方式。pression.typeRCfile存儲格式RCFile(RecordColumnarFile)存儲結(jié)構(gòu)遵循的是“先水平劃分,再垂直劃分”的設(shè)計理念,它結(jié)合了行存儲和列存儲的優(yōu)點。首先,RCFile保證同一行的數(shù)據(jù)位于同一節(jié)點,因此元組重構(gòu)的開銷很低其次,像列存儲一樣,RCFile能夠利用列維度的數(shù)據(jù)壓縮,并且能跳過不必要的列讀取。RCfile存儲格式創(chuàng)建RCFile存儲格式的表CREATETABLErcfiletable(keystring,valuestring)ROWFORMATSERDE'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'STOREDASRCFile;插入數(shù)據(jù)insertintotablercfiletableselect*fromtest;HiveSerDeSerDe是Serialize/Deserilize的簡稱,目的是用于序列化和反序列化。對象的序列化主要有兩種用途:對象的持久化對象數(shù)據(jù)的網(wǎng)絡(luò)傳送除了上面兩點,Hive的反序列化是對key/value反序列化成hivetable的每個列的值。Hive可以方便的將數(shù)據(jù)加載到表中而不需要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換,這樣在處理海量數(shù)據(jù)時可以節(jié)省大量的時間。可以使用java來實現(xiàn)SerDe,hive本身自帶了幾個內(nèi)置的serDeHiveSerDeSerDe表示Serializer和Deserializer用戶自定義函數(shù)(UDF)在ETL處理中,一個處理過程可能包含多個處理步驟。Hive語言具有多種方式來將上一步驟的輸出通過管道傳遞給下一個步驟,然后在一個查詢中產(chǎn)生眾多輸出。用戶可以針對一些特定的處理過程編寫自定義函數(shù)。如果沒有這個功能,那么一個處理過程可能就需要包含一個MapReduce步驟或者需要將數(shù)據(jù)轉(zhuǎn)移到另一個系統(tǒng)中來實現(xiàn)這些改變。Hive提供了用戶自定義函數(shù)(UDF),UDF是一個允許用戶擴展HiveQL的強大功能,用戶使用java進(jìn)行編碼,將用戶自定義函數(shù)加入到用戶會話中,它們就可以和內(nèi)置的函數(shù)一樣使用。UDF是在Hive查詢產(chǎn)生的相同的task進(jìn)程中執(zhí)行的,因此它們可以高效地執(zhí)行。用戶自定義函數(shù)(UDF)Hive可以允許用戶編寫自己定義的函數(shù)UDF,在查詢中使用。Hive中有3種UDF:UDF(用戶自定義函數(shù)):操作單個數(shù)據(jù)行,產(chǎn)生單個數(shù)據(jù)行;UDAF(用戶自定義聚合函數(shù)):操作多個數(shù)據(jù)行,產(chǎn)生一個數(shù)據(jù)行。UDTF(用戶自定義表生成函數(shù)):操作一個數(shù)據(jù)行,產(chǎn)生多個數(shù)據(jù)行。用戶自定義函數(shù)(UDF)查看當(dāng)前Hive會話中所加載的所有函數(shù)名稱showfunctions查看函數(shù)說明descfunctionconcatdescfunctionextendedconcat函數(shù)調(diào)用selectsum(amount)fromsalary;用戶自定義表生成函數(shù)(UDTF)表生成函數(shù)接受一行數(shù)據(jù)輸入,然后產(chǎn)生多列或者多行輸出,所有表生成函數(shù),包括用戶自定義的和內(nèi)置的,都統(tǒng)稱用戶自定義表生成函數(shù)(UDTF)。將單列擴展成多列或者多行selectexplode(subordinates)subfromemployees;selectexplode(deductions)fromemployees;Hive只允許在select子句中使用單一的表生成函數(shù)selectname,explode(subordinates)subfromemployees;用戶自定義表生成函數(shù)(UDTF)通過lateralview可以方便的將explode這個UDTF得到的行轉(zhuǎn)列的結(jié)果集合在一起提供服務(wù)。selectname,subfromemployeeslateralviewexplode(subordinates)subviewassub;使用lateralview需要指定視圖別名和生成的新列的別名UDF編程編寫一個UDF,需要繼承UDF并實現(xiàn)evaluate()函數(shù)。在查詢過程中,查詢中對應(yīng)的每個應(yīng)用到這個函數(shù)的地方都會對這個類進(jìn)行實例化。對于每行輸入都會調(diào)用evaluate()函數(shù)。而evaluate()處理后的值會返回給Hive。同時用戶是可以重載evaluate方法的。Hive會像Java的方法重載一樣,自動選擇匹配的方法。UDF編程@Description(name="TestUDF",value="_FUNC_(date,price)-fromtheinputdatestring(yyyyMMdd),"+"returnsthedeprecationpricebycomputingpriceand"+"thedepreciationrateofthesecond-handcar.",extended="Example:\n"+">SELECT_FUNC_(date_string,price)FROMsrc;")publicclassTestUDFextendsUDF{privateSimpleDateFormatdf;privatedouble[]rates;publicTestUDF(){df=newSimpleDateFormat("yyyyMMdd");rates=newdouble[]{0.071,0.070,0.069,0.067,0.064,
0.062,0.060,0.057,0.055,0.053,
0.051,0.049,0.049,0.048,0.046,
0.044};
}UDF編程publicStringevaluate(Stringdeal_date,Stringprice){Datedate=null;Datenow=newDate();//獲取當(dāng)前時間longprice_=Long.valueOf(price);try{ date=df.parse(deal_date);doublenumMonth=(now.getYear()*12+now.getMonth())-(date.getYear()*12+date.getMonth())+1;doublemileage=((6.000-(1.7000*numMonth/12))/1.7000)*12*0.25;doubletotal=numMonth+mileage;
int
depre_year=(int)(total/12);for(int
i=0;i<depre_year+1;i++){price_=(long)(price_*(1-rates[i]));}}catch(Exceptionex){returnnull;}returnLong.toString(price_);}UDF編程如果想在Hive中使用UDF,那么需要將Java代碼進(jìn)行編譯,然后將編
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化產(chǎn)品出口代理協(xié)議模板3篇
- 2025年度征收補償與安置補償協(xié)議執(zhí)行監(jiān)督辦法4篇
- 2024年04月湖南國家開發(fā)銀行湖南分行暑期實習(xí)生招考筆試歷年參考題庫附帶答案詳解
- 個人汽車租借協(xié)議2024年標(biāo)準(zhǔn)格式樣張版B版
- 2025年度文化創(chuàng)意產(chǎn)業(yè)園區(qū)場地租賃管理協(xié)議4篇
- 個人與公司買賣合同范本完整版
- 2025年度文化產(chǎn)業(yè)園區(qū)場地合作開發(fā)合同協(xié)議書4篇
- 2024版室外房屋墻面裝修合同書版B版
- 2025年度化妝品全球包銷代理合同范本4篇
- 2024裝飾裝修合同的法律適用
- 標(biāo)點符號的研究報告
- 小學(xué)數(shù)學(xué)《比的認(rèn)識單元復(fù)習(xí)課》教學(xué)設(shè)計(課例)
- 詞性轉(zhuǎn)換清單-2024屆高考英語外研版(2019)必修第一二三冊
- GB/T 44670-2024殯儀館職工安全防護(hù)通用要求
- 安徽省合肥市2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)試題(含答案)
- 合同債務(wù)人變更協(xié)議書模板
- 2024年高中生物新教材同步選擇性必修第三冊學(xué)習(xí)筆記第4章 本章知識網(wǎng)絡(luò)
- 西班牙可再生能源行業(yè)市場前景及投資研究報告-培訓(xùn)課件外文版2024.6光伏儲能風(fēng)電
- 2024-2029年中國制漿系統(tǒng)行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- (正式版)SHT 3225-2024 石油化工安全儀表系統(tǒng)安全完整性等級設(shè)計規(guī)范
- 《輸變電工程三維協(xié)同設(shè)計規(guī)范》
評論
0/150
提交評論