不如先解决我一个问题吧:
我有个定时统计每 10 分钟出一个 orc 文件,因为数据量不够大,所以会有很多小文件放在 hdfs 上,要知道这样是很浪费资源的,所以现在要做一个合并,方案有 2 个:
1、每 10 分钟抽取数据的时候,把上一次的文件读出来拼进去
2、每日 0 点把所有 orc 读出来再合并
那么两种我都试过了,遇到一个问题,就是 spark 写进去的时候由于多个分区导致最后合并也没有移动数据,而是在各块硬盘上,如果要 repartation 就要移动数据,产生大量的网络 IO,要如何去解决这个问题?