hive优化之_ORC表,小文件合并

一:问题描述

问题1:hive orc非分区表。小数据量,多期数据,hive查询变慢。查看hdfs发现是小文件过多

二:方案

        当 Hive ORC 表存在小文件过多的问题时,可以考虑以下几种解决方法: 使用 Hive 自带的concatenate命令合并小文件,但该命令只支持rcfile和orc文件类型。对于非分区表,可以使用以下命令:alter table 表名 concatenate;;对于分区表,则使用:alter table 表名 partition(分区键=分区值) concatenate;。需要注意的是,使用该命令不能指定合并后的文件数量,但可以多次执行。多次执行后文件数量不再变化时,可能与参数mapreduce.input.fileinputformat.split.minsize=256mb的设置有关,可通过设定每个文件的最小 size 来调整。

1:orc普通表

#查看表结构和hdfs地址
show create table table_a;

#下载hdfs表目录数据,查看文件数量
hadoop dfs -get hdfs://hdfs-ha/warehouse/tablespace/test.db/table_a

#合并小文件
alter table table_a concatenate;
#下载hdfs表目录数据,查看文件数量
hadoop dfs -get hdfs://hdfs-ha/warehouse/tablespace/test.db/table_a

合并前,每期数据都会有一个文件夹

合并后,多期是数据仅会有一个文件夹

使用concatenate命令合并小文件,需要先评估数据量,和hive队列的cores。通常每个文件为256M,参考数据量来参考合并小文件的频率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值