栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

巧妙利用sql方式对hive表小文件合并

巧妙利用sql方式对hive表小文件合并

第一种方法:在hive对应的hdfs文件夹下做小文件合并。
第二种方法:直接通过ETL sql, 可以完成hdfs底层合并. 非常方便

例如:ods_page_log 表。 (刚刚完成抽取、追加,等操作。在ETL完成最后,可追加一个步骤。 )

合并操作:

# 建一张结构一样的临时表、插入数据到临时表、
# 删除原始表、把临时表再命名为原始表的名字
create table tmp_ods_page_log  like ods_page_log; 
insert into tmp_ods_page_log select  * FROM ods_page_log;
drop table ods_page_log;
ALTER TABLE tmp_ods_page_log RENAME TO ods_page_log;

此时再到hdfs中查看,ods_page_log对应的hdfs文件夹下、发现小文件数量变少了。

(目前该方法还没有做分区表的测试。分区文件夹的小文件应该也是会被合并的,文章待续~)

该功能可在该表ETL完成最后,对表进行合并操作。 如果所有hive表最后都可以这样。 小文件数量会大大降低。 当然并不是所有表ETL最后都需要合并,也可做成随机功能模块,根据“资源盈余、表本身大小、是否正在使用等”参数来判断是否能启动合并sql。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/780363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号