15 Hadoop壓縮和儲存

2021-10-03 02:38:57 字數 3087 閱讀 5767

hadoop壓縮和儲存思維導圖

為了支援多種壓縮/解壓縮演算法,hadoop引入了編碼/解碼器,如下表所示

2)開啟mapreduce中map輸出壓縮功能

3)設定mapreduce中map輸出資料的壓縮方式

4)執行查詢語句

2)開啟mapreduce最終輸出資料壓縮

3)設定mapreduce最終資料輸出壓縮方式

4)設定mapreduce最終資料輸出壓縮為塊壓縮

5)測試一下輸出結果是否是壓縮檔案

列儲存的特點:

textfile和sequencefile的儲存格式都是基於行儲存的

orc和parquet是基於列式儲存的

row data:

stripe footer:

每個檔案有乙個file footer,這裡面存的是每個stripe的行數,每個column的資料型別資訊等;每個檔案的尾部是乙個postscript,這裡面記錄了整個檔案的壓縮型別以及filefooter的長度資訊等。在讀取檔案時,會seek到檔案尾部讀postscript,從裡面解析到file footer長度,再讀filefooter,從裡面解析到各個stripe資訊,再讀各個stripe,即從後往前讀。

create

table log_text (

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)row format delimited fields

terminated

by'\t'

stored as textfile ;

- (2)向表中載入資料

- hive (default)> load data local inpath '/root/log' into table log_text ;

- (3)檢視表中資料大小

- dfs -du -h /user/hive/warehouse/log_text;

- 18.1 m /user/hive/warehouse/log_text/log.data

create

table log_orc(

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)row format delimited fields

terminated

by'\t'

stored as orc ;

- (2)向表中載入資料

- insert into table log_orc select * from log_text ;

- (3)檢視表中資料大小

- dfs -du -h /user/hive/warehouse/log_orc/ ;

- 2.8 m /user/hive/warehouse/log_orc/000000_0

-

create

table log_parquet(

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)row format delimited fields

terminated

by'\t'

stored as parquet ;

- (2)向表中載入資料

- insert into table log_parquet select * from log_text ;

- (3)檢視表中資料大小

- dfs -du -h /user/hive/warehouse/log_parquet/ ;

- 13.1 m /user/hive/warehouse/log_parquet/000000_0

create

table log_orc_none(

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)row format delimited fields

terminated

by'\t'

stored as orc tblproperties (

"orc.compress"

="none"

);

(3)檢視插入後資料

7.7 m /user/hive/warehouse/log_orc_none/000000_0

-

create

track_time string,

url string,

session_id string,

referer string,

ip string,

end_user_id string,

city_id string

)row format delimited fields

terminated

by'\t'

stored as orc tblproperties (

"orc.compress"=)

;

(3)檢視插入後資料

Hive的壓縮和儲存

資料儲存格式 hive和hadoop一樣,也可以使用壓縮來節省我們的mr處理的網路頻寬。其中壓縮格式和效能,也和hadoop類似。開啟map輸出階段壓縮 開啟reduce輸出階段壓縮 當hive將輸出寫入到表中時,輸出內容同樣可以進行壓縮。屬性hive.exec.compress.output控制著...

Hadoop和Lexst的儲存策略

hadoop依靠hbase實現儲存,hbase採用列儲存方案 典型nosql 加上lsm log structured merge tree 對資料緊縮,使得資料儲存效率不錯,很適合大資料環境下的讀操作,但是如果做刪除資料,由於列儲存和lsm固有的特點,這時的處理效率不高。圖1 hbase列儲存,n...

15 shutil 模組 拷貝和壓縮

目錄 shutil 模組 拷貝和壓縮 shutil 模組是python標準庫中提供的,主要用來做檔案和資料夾的拷貝,移動,刪除 還可以做檔案和資料夾的壓縮,解壓縮操作 os模組提供了對目錄或檔案的一般操作 shutil 模組作為補充,提供了移動,複製,壓縮,解壓等操作,這些os模組都沒有提供 cod...