2023年11月26日发(作者:)
【Hive】如何对Hive表⼩⽂件进⾏合并
0、前⾔
HDFS不适合⼤量⼩⽂件的存储,因namenode将⽂件系统的元数据存放在内存中,因此存储的⽂件数⽬受限于 namenode的内存⼤⼩。
HDFS中每个⽂件、⽬录、数据块占⽤150Bytes。如果存放的⽂件数⽬过多的话会占⽤很⼤的内存甚⾄撑爆内存。HDFS适⽤于⾼吞吐
量,⽽不适合低时间延迟的访问。如果同时存⼊⼤量的⼩⽂件会花费很长的时间。本篇⽂章主要介绍在CDP7.1.6集群中如何对Hive表⼩⽂
件进⾏合并。
测试环境:
1.操作系统Redhat7.6
7.1.6
5.查看总分区数(可以看到共12个分区)
hdfs dfs -ls /warehouse/tablespace/managed/hive//test_table_hive/
6.总的⼩⽂件数量,和batch_date=20210608分区的⽂件数量
SET ion=true;
SET =nonstrict;
SET ions=3000;
5.查看总分区数
hdfs dfs -ls /warehouse/tablespace/managed/hive//test_table_hive_merge/
6.查看合并后的分区数和⼩⽂件数量
hdfs dfs -mkdir -p /tmp/hive/test_table_hive_data_backups
hdfs dfs -mv /warehouse/tablespace/managed/hive//test_table_hive/* /tmp/hive/test_table_hive_data_backups/
hdfs dfs -cp -f /warehouse/tablespace/managed/hive//test_table_hive_merge/* /warehouse/tablespace/managed/hive//test_table_hive/
SET ion=true;


发布评论