【技術(shù)干貨】Hive實(shí)踐分享之存儲(chǔ)和壓縮的坑
在學(xué)習(xí)大數(shù)據(jù)技術(shù)的過(guò)程中,HIVE是非常重要的技術(shù)之一,但我們?cè)陧?xiàng)目上經(jīng)常會(huì)遇到一些存儲(chǔ)和壓縮的坑,本文通過(guò)科多大數(shù)據(jù)的武老師整理,分享給大家。
大家都知道,由于集群資源有限,我們一般都會(huì)針對(duì)數(shù)據(jù)文件的「存儲(chǔ)結(jié)構(gòu)」和「壓縮形式」進(jìn)行配置優(yōu)化。在我實(shí)際查看以后,發(fā)現(xiàn)集群的文件存儲(chǔ)格式為Parquet,一種列式存儲(chǔ)引擎,類似的還有ORC。而文件的壓縮形式為Snappy。具體的操作形式如下:
① 創(chuàng)建Parquet結(jié)構(gòu)的表(Hive 0.13 and later):
CREATE TABLE CRM.DEMO(A INT) STORED AS PARQUET ;
② 確認(rèn)表的文件存儲(chǔ)格式:
desc formatted crm.demo;
結(jié)果輸出如下
# Storage Information
SerDe Library: org.a(chǎn)pache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
InputFormat: org.a(chǎn)pache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
OutputFormat: org.a(chǎn)pache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
③ 創(chuàng)建Snappy壓縮格式的Parquet結(jié)構(gòu)的表(待考察):
ALTER TABLE crm.demo SET TBLPROPERTIES ('parquet.compression'='SNAPPY') ;
或,寫(xiě)入時(shí)
SET parquet.compression=SNAPPY ;
回到最初的問(wèn)題,如果是按Snappy壓縮的格式,這份用戶行為數(shù)據(jù)沒(méi)辦法分析了,因此有兩種辦法去解決:
① 安裝Snappy的解壓工具
可自行百度,由于沒(méi)有權(quán)限,所以這條路行不通;
② 更改數(shù)據(jù)的壓縮格式可以
最初我試了一下更改Parquet格式表的壓縮格式,但是沒(méi)有用!因?yàn)槲易詈笫切枰獙⒉樵償?shù)據(jù)導(dǎo)出到本地文件系統(tǒng),如下語(yǔ)句所示:
insert overwrite local directory '/home/etl/tmp/data'
select *
from crm.demo
所以,通過(guò)這樣的形式得到的數(shù)據(jù),壓縮格式依然是. Snappy。因此,這里就需要配置Hive執(zhí)行過(guò)程中的中間數(shù)據(jù)和最終數(shù)據(jù)的壓縮格式。
如MapReduce的shuffle階段對(duì)mapper產(chǎn)生的中間結(jié)果數(shù)據(jù)壓縮:
hive> set mapred.map.output.compression.codec;
mapred.map.output.compression.codec=org.a(chǎn)pache.hadoop.io.compress.SnappyCodec
如對(duì)最終生成的Hive表的數(shù)據(jù)壓縮:
hive> set mapred.output.compression.codec;
mapred.output.compression.codec=org.a(chǎn)pache.hadoop.io.compress.SnappyCodec
這里,我們要設(shè)置結(jié)果表數(shù)據(jù)的壓縮格式,語(yǔ)句如下:
set mapred.output.compression.codec=org.a(chǎn)pache.hadoop.io.compress.GzipCodec;
最終的結(jié)果就是 .gz 的壓縮格式
-rw-r--r-- 1 etl etl 342094 May 10 11:13 000000_0.gz
最后,我們直接下載到電腦本地,直接解壓就可以通過(guò)Excel分析用戶行為路徑數(shù)據(jù)了。
總結(jié):從Hive應(yīng)用層的角度來(lái)說(shuō),關(guān)于數(shù)據(jù)文件的「存儲(chǔ)結(jié)構(gòu)」和「壓縮形式」,這兩個(gè)點(diǎn)我們不需要關(guān)心,只是在導(dǎo)出數(shù)據(jù)的時(shí)候需要結(jié)合文件大小,以及數(shù)據(jù)類型去設(shè)置合適的壓縮格式。不過(guò)從Hive底層維護(hù)的角度來(lái)說(shuō),涉及到各種各樣的「存儲(chǔ)結(jié)構(gòu)」和「壓縮形式」,都需要開(kāi)發(fā)者去研究和調(diào)整,這樣才能保證集群上的文件在「時(shí)間」和「空間」上相對(duì)平衡。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
7月8日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身智能機(jī)器人產(chǎn)業(yè)技術(shù)創(chuàng)新應(yīng)用論壇
-
免費(fèi)參會(huì)立即報(bào)名>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書(shū)》
推薦專題
- 1 AI 眼鏡讓百萬(wàn) APP「集體失業(yè)」?
- 2 豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
- 3 一文看懂視覺(jué)語(yǔ)言動(dòng)作模型(VLA)及其應(yīng)用
- 4 “支付+”時(shí)代,支付即生態(tài) | 2025中國(guó)跨境支付十大趨勢(shì)
- 5 中國(guó)最具實(shí)力AI公司TOP10
- 6 特斯拉Robotaxi上路,馬斯克端上畫(huà)了十年的餅
- 7 深圳跑出40億超級(jí)隱形冠軍:賣機(jī)器人年入6.1億,港股上市
- 8 “AI六小虎”到了下一個(gè)賽點(diǎn)
- 9 張勇等人退出阿里合伙人
- 10 AI的夏天:第四范式VS云從科技VS地平線機(jī)器人