hive中的資料使用壓縮的好處(執行查詢時會自動解壓):
可以節約磁碟的空間,基於文字的壓縮率可達40%+;
壓縮可以增加吞吐量和效能量(減小載入記憶體的資料量),但是在壓縮和解壓過程中會增加cpu的開銷。所以針對io密集型的jobs(非計算密集型)可以使用壓縮的方式提高效能。
檢視集群的支援的壓縮演算法.
hive -e
"set io.compression.codecs"
返回支援的壓縮演算法
io.compression
.codecs=org.apache
.hadoop
.io.compress
.defaultcodec,
org.apache
.hadoop
.io.compress
.gzipcodec,
org.apache
.hadoop
.io.compress
.bzip2codec,
org.apache
.hadoop
.io.compress
.deflatecodec,
org.apache
.hadoop
.io.compress
org.apache
.hadoop
.io.compress
.lz4codec
常用的壓縮演算法:
gzip
zlib
建表時申明檔案的儲存格式,預設為textfile。如使用壓縮常使用分塊壓縮sequencefile。
create table a(
...)stored as sequencefile
-- 任務中間壓縮
set hive.exec
.compress
.intermediate=true;
set hive.intermediate
.compression
.codec=org.apache
.hadoop
.io.compress
;set hive.intermediate
.compression
.type=block;
-- map/reduce 輸出壓縮
set hive.exec
.compress
.output=true;
set mapred.output
.compression
.codec=org.apache
.hadoop
.io.compress
;set mapred.output
.compression
.type=block;
hive原始資料為119.2g。
壓縮演算法
textfile格式
sequencefile
rcfile
orcfile
不壓縮119.2g
54.1g
20.0g
98g30.2g
23.6g
13.6g
27.0g
gzip
18.8g
14.1g
不支援15.2 g
zlib
不支援不支援
10.1g
不支援
Hive Hive的資料壓縮
在實際工作當中,hive當中處理的資料,一般都需要經過壓縮,前期我們在學習hadoop的時候,已經配置過hadoop的壓縮,我們這裡的hive也是一樣的可以使用壓縮來節省我們的mr處理的網路頻寬 壓縮格式 工具演算法 副檔名 是否可切分 default 無default deflate 否gzip ...
Hive Hive表檔案壓縮介紹
目錄壓縮 1 壓縮概述 2 開啟map輸出階段壓縮 3 開啟reduce輸出階段壓縮 4 建立表時指定壓縮格式 mr 支援的壓縮編碼 為了支援多種壓縮 解壓縮演算法,hadoop引入了編碼 解碼器 壓縮效能的比較 假如有乙個表 createtableemp t idint,namestring,de...
hive hive中建立表
一 建立表語句 create table if not exists mydb.employees name string comment employee name salary float subordinates arraydeductions mapaddress struct commen...