我们Streaming程序Trigger Inverval 设置的是 5分钟[⾃⼰定] ,那么每5分钟就会⽣成⼀个⽂件,⼀天就
会有 288个 ⽂件,⼩⽂件会产⽣三个主要问题 1. 过多的⼩⽂件会对namenode形成压⼒ 2. 过多的⼩⽂
件是不利于分析引擎做数据查询分析的,降低查询效率 3. 单个⼩⽂件的压缩⽐低,会占⽤更多的存储空间
尤其是第⼆个问题是我们⾸要关注的问题。 因此我们应对⼩⽂件,会开发Merge程序,来完成⼩⽂件的
合并⼯作,所谓Merge程序就是从定时把⼩⽂件从HDFS上读出来,然后合并成⼤⽂件,存回HDFS,同
时删除Merge后的⼩⽂件。写完这个程序,交个Azkaban定时调度就可以了。 我们⼀般 1⼩时 调度⼀次
Merge程序,并且尽可能控制Merge后的⽂件⼤⼩在 1G 左右。
上⾯的说的是我们不使⽤Hudi这个组件的情况下需要做的事情,不使⽤Hudi也是完全可以的。