合并flink写入hive产生的小文件

flink 写入数据到 hdfs 时,会产生很多的小文件,因为每个文件均按块存储,每个块的元数据存储在NameNode的内存中,因此HDFS存储小文件会非常低效。因为大量的小文件会耗尽NameNode中的大部分内存。

因为我们需要将 小文件合并。

只需要利用 HIVE 的 MR 即可,也就是执行 这条SQL

1
2
insert overwrite table hive_table
select * from hive_table where partition_col = ''

其中 partition_col是表的分区字段,这样,该分区内的小文件会自动合并


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!