成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大多數開發人員都弄錯的Hive與MapReduce小文件合并問題

大數據 數據分析
因為設置上面四個參數,看上去規定了map結束,MR結束合并文件,如果文件平均小于smallfiles.avgsize啟動一個新的MRj進行文件的二次合并。如果啟動mr合并文件,沒有問題。

0.背景

近來我們公司搞小文件治理(小于10Mb),小文件太多的危害就不此贅述了。公司的開發人員提供的合并小文件治理配置如下:

-- 設置小文件合并
set hive.merge.mapfiles=true;
set hive.merge.mapredfiles=true;
set hive.merge.size.per.task = 256000000 ;
set hive.merge.smallfiles.avgsize= 256000000 ;


看上去配置的沒啥問題,不管是Map-only,還是MapReduce都考慮到了,只要輸出的文件小于這個值,就重新啟動一個MR去執行文件合并。看也符合Hive官網的配置解釋


然而現實并非如此,廢話不多說,you can you code,no can no bb.

原分析表數據在HDFS存儲為551個小文件,下面所有的測試都是基于這個文件。

1.測試代碼方案1

設置啟動map前文件合并,先使用官方默認配置,實現文件合并測試

set  hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; --官方默認值,也是當前平臺默認值
set hive.merge.smallfiles.avgsize=16000000; --官方默認值,也是當前平臺默認值
set hive.merge.size.per.task=256000000; --官方默認值,也是當前平臺默認值
set hive.merge.mapfiles =true ; --官方默認值,也是當前平臺默認值
set hive.merge.mapredfiles = true ; --官方默認值,也是當前平臺默認值

drop table if exists FDM_SOR.T_FSA_BHVR_NEW_EXPO_D_tmp_tmp;
create table FDM_SOR.t_fsa_bhvr_new_expo_d_tmp_tmp
stored as orc
as
select
*
from FDM_SOR.t_fsa_bhvr_new_expo_d
where stat_date = '20200630'


結果:只產生了438個文件,看樣子效果不錯,文件變少了,但是發現還是有很多小于16Mb的文件,為啥設置了不管用呢,是不是set
hive.merge.smallfiles.avgsize官方的默認值給的太小了。需要加大。看實驗2.



2.測試代碼方案2

設置啟動map前文件合并,將set
hive.merge.smallfiles.avgsize值加大,增加文件合并的Size。按照官方的說法當輸出的文件平均小于16Mb時系統會再啟動一個MR進行文件合并。這下該管用了吧,請看:

set  hive.input.format = org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; --官方默認值,也是當前平臺默認值
set hive.merge.smallfiles.avgsize=256000000; --改了這個值,由默認的16Mb,改成256Mb
set hive.merge.size.per.task=256000000; --官方默認值,也是當前平臺默認值
set hive.merge.mapfiles =true ; --官方默認值,也是當前平臺默認值
set hive.merge.mapredfiles = true ; --官方默認值,也是當前平臺默認值

drop table if exists FDM_SOR.T_FSA_BHVR_NEW_EXPO_D_tmp_tmp;
create table FDM_SOR.t_fsa_bhvr_new_expo_d_tmp_tmp
stored as orc
as
select
*
from FDM_SOR.t_fsa_bhvr_new_expo_d
where stat_date = '20200630'

廢話不多說,上結果請看


結果分析:沒錯,第一次MR因為Combinetext啟動了438個map和上面一樣,果然接著又啟動了一個MR,進行輸出后的文件合并。看樣子很DIAO。合并要求文件大小不小256Mb,然后實際呢?pappa。文件雖然減少了很多到351個,但依然有很多小文件,很多小于10Mb的文件,這個時候心里肯定一句

3.測試代碼方案3

放大招,功夫有沒有,代碼走一走,加上split參數

set mapred.max.split.size=256000000;  
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.size.per.rack=100000000;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set hive.merge.mapfiles = true ;
set hive.merge.mapredfiles = true ;
set hive.merge.size.per.task = 256000000 ;
set hive.merge.smallfiles.avgsize=160000000 ;

drop table if exists FDM_SOR.T_FSA_BHVR_NEW_EXPO_D_tmp_tmp;
create table FDM_SOR.T_FSA_BHVR_NEW_EXPO_D_tmp_tmp
stored as orc
as
select
*
from FDM_SOR.T_FSA_BHVR_NEW_EXPO_D
where stat_date = '20200630'

廢話不多說,上結果請看:


結果分析:這下好了,全是大文件,44大文件,每個大文件都是辣么大,最小的都是48Mb。為啥加了split參數以后就生效了呢。前面單獨合并小文件參數沒啥效果呢?網上隨便搜一下,都是這種配置這種參數的?

-- 設置小文件合并
set hive.merge.mapfiles=true;
set hive.merge.mapredfiles=true;
set hive.merge.size.per.task = 256000000 ;
set hive.merge.smallfiles.avgsize= 256000000 ;

4.答案揭曉

因為設置上面四個參數,看上去規定了map結束,MR結束合并文件,如果文件平均小于smallfiles.avgsize啟動一個新的MRj進行文件的二次合并。如果啟動mr合并文件,沒有問題。但是忽略了一個問題,你重新啟動一個mr合并文件,這個mr是不是需要進行文件split,你這個參數搞小了,那就會產生很多task,很多map,比如很多小文件就是一個map,最終還是產生很多小文件(因為合并小文件的mr只有map)。所以必須要配合split參數才有用。具體split參數使用,參考我其他博客。

本文轉載自微信公眾號「滌生大數據」,作者「滌生大數據」,可以通過以下二維碼關注。

轉載本文請聯系「滌生大數據」公眾號。

責任編輯:武曉燕 來源: ·滌生大數據
相關推薦

2023-02-27 15:44:17

Java開發技巧

2023-07-12 07:56:13

CSS規則元素

2023-01-17 16:25:18

前端開發JSON

2020-04-20 18:15:46

開發自信技術

2020-07-05 08:01:44

SOC威脅檢測漏洞

2025-02-25 10:21:12

2024-08-22 18:53:51

2009-07-14 15:39:34

Swing大多數控件

2013-04-02 10:04:17

iCloud蘋果

2010-08-09 16:09:25

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業開發人員提供商

2020-05-17 16:10:36

開發人員軟件開發開發

2009-11-23 20:07:51

ibmdw開發

2021-02-19 09:33:01

kubernetesJAVA服務

2009-12-11 14:50:14

Visual Basi

2022-06-21 10:34:56

芯片短缺供應鏈問題

2011-05-26 10:50:31

2020-09-15 12:45:17

智慧城市數據城市

2014-01-02 10:34:54

設計設計師
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲人一区 | 亚洲精品乱码久久久久久9色 | 国产欧美一区二区三区国产幕精品 | 黑人巨大精品欧美一区二区一视频 | 九九久久久 | 91精品国产综合久久福利软件 | 色婷婷综合久久久中字幕精品久久 | 精品国产欧美一区二区 | 在线中文字幕第一页 | 国产精品一卡 | 日韩免费高清视频 | 精品产国自在拍 | 日本不卡免费新一二三区 | 午夜影院在线视频 | 亚洲中午字幕 | 欧美日韩黄色一级片 | 黑人精品欧美一区二区蜜桃 | 女人牲交视频一级毛片 | av国产精品毛片一区二区小说 | 久久亚洲一区 | 日本一区二区三区视频在线 | 久久99精品久久久久久国产越南 | 久久精品—区二区三区 | 亚洲丝袜天堂 | 四虎成人精品永久免费av九九 | 综合二区 | 毛片a| 91免费在线看 | 亚洲国产精品一区二区第一页 | 欧美一区在线视频 | 欧美一级二级视频 | 午夜精品视频在线观看 | 91精品国产91久久久久久最新 | 中文字字幕在线中文乱码范文 | 日韩av中文| 国产一区二区三区在线 | 精品久久久一区 | 麻豆毛片 | 色久伊人| 久久中文字幕视频 | 国外成人在线视频网站 |