我的輸入包含大量的小ORC文件,我希望在一天的每一天結束,我想將數據拆分爲100MB的塊。Hive合併小ORC文件
我的輸入和輸出都是S3和環境中使用的電子病歷,
蜂巢參數,正在設置,
set hive.msck.path.validation=ignore;
set hive.exec.reducers.bytes.per.reducer=256000000;
SET hive.exec.dynamic.partition = true;
SET hive.exec.dynamic.partition.mode = nonstrict;
SET hive.mapred.mode = nonstrict;
set hive.merge.mapredfiles=true;
set hive.merge.mapfile=true ;
set hive.exec.parallel = true;
set hive.exec.parallel.thread.number = 8;
SET hive.exec.stagingdir=/tmp/hive/ ;
SET hive.exec.scratchdir=/tmp/hive/ ;
set mapred.max.split.size=68157440;
set mapred.min.split.size=68157440;
set hive.merge.smallfiles.avgsize=104857600;
set hive.merge.size.per.task=104857600;
set mapred.reduce.tasks=10;
我的插入語句:
insert into table dev.orc_convert_zzz_18 partition(event_type) select * from dev.events_part_input_18 where event_type = 'ScreenLoad' distribute by event_type;
現在的問題是,我有大約80個總共500MB大小的輸入文件,並且在這個插入語句之後,我期待S3中有4個文件,但所有這些文件都合併成一個文件,這個文件是n所需的輸出。
有人可以請讓我知道,什麼錯,
'mapred'性能都已過時 –
@ cricket_007哦確定,由於將檢查。我剛纔想出了答案,我們可以使用集羣來進一步將分區拆分爲多個部分。我在這裏探索配置單元是因爲我的火花輸出有太多小文件,如果我通過Presto將最小的文件暴露給最終用戶,那麼查詢這些較小的文件將會變得更慢https://community.hortonworks.com/content/supportkb/49637 /hive-bucketing-and-partitioning.html –
您應該在Spark中使用'coalesce'或'repartition'來修復您的小文件問題 –