Hive合并小文件

通过sql进行合并:

1、concatenate方法:

对于非分区表:alter table tablename concatenate

对于分区表:alter table partition(dt=20231201) concatenate

使用方便,但只适用于rcfile和orc文件类型,需要执行多次才能把文件合并成一个

2、insert overwriter方法

支持所有数据类型,但是select 后面要把所有字段拼起来,如果使用*,由于带有dt字段,无法写入新的分区。

3、insert overwrite table tablename select * 用法

从select * 中去掉一列(address)的方法:

insert overwriter table tablename select '(address)?+.+'from test

想合并成一个文件,分区字段必须去掉。

也可以通过参数合并

在map输入的时候合并小文件:

-- 每个Map最大输入大小,决定合并后的文件数

set mapred.max.split.size=256000000;

-- 一个节点上split的至少的大小 ,决定了多个data node上的文件是否需要合并

set mapred.min.split.size.per.node=100000000;

-- 一个交换机下split的至少的大小,决定了多个交换机上的文件是否需要合并

set mapred.min.split.size.per.rack=100000000;

-- 执行Map前进行小文件合并

set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;

在reduce输出的的时候合并小文件:

-- 在map-only job后合并文件,默认true

set hive.merge.mapfiles = true;

-- 在map-reduce job后合并文件,默认false

set hive.merge.mapredfiles = true;

-- 合并后每个文件的大小,默认256000000

set hive.merge.size.per.task = 256000000;

-- 平均文件大小,是决定是否执行合并操作的阈值,默认16000000

set hive.merge.smallfiles.avgsize = 100000000;

相关推荐
yumgpkpm6 小时前
CMP(类Cloudera CDP 7.3 404版华为Kunpeng)与其他大数据平台对比
大数据·hive·hadoop·elasticsearch·kafka·hbase·cloudera
陈辛chenxin11 小时前
【大数据技术06】大数据技术
大数据·hadoop·分布式·python·信息可视化
yumgpkpm11 小时前
Hadoop在AI时代如何实现生态协同? CMP 7.13(或类 Cloudera CDP7.3 的 CMP 7.13 平台,如华为鲲鹏 ARM 版)
大数据·hadoop·elasticsearch·zookeeper·kafka·hbase·cloudera
piepis18 小时前
Doris Docker 完整部署指南
数据仓库·docker·doris·容器部署
qqxhb1 天前
系统架构设计师备考第68天——大数据处理架构
大数据·hadoop·flink·spark·系统架构·lambda·kappa
yumgpkpm1 天前
Hadoop大数据平台在中国AI时代的后续发展趋势研究CMP(类Cloudera CDP 7.3 404版华为鲲鹏Kunpeng)
大数据·hive·hadoop·python·zookeeper·oracle·cloudera
凯子坚持 c1 天前
基于VMware与CentOS 7的Hadoop集群部署全景指南
linux·hadoop·centos
KANGBboy2 天前
ES 总结
hive·elasticsearch
FeelTouch Labs2 天前
数据仓库和数据集市之ODS、CDM、ADS、DWD、DWS
数据仓库
大数据CLUB2 天前
酒店预订数据分析及预测可视化
大数据·hadoop·分布式·数据挖掘·数据分析·spark·mapreduce