Hive的小文件合并参数;
Spark的小文件合并思路:
采用社区 SPARK-24940 的方式处理,借助 SQL hint 的方式合并小文件。
|
增加自动合并小文件结果文件。
- 用户侧:当 spark.sql.shuffle.partitions 设置比较大且结果数据集比较小时,会产生大量小文件,新增 spark.sql.result.partitions 参数来控制最终输出的文件数。
- 平台侧:数据落盘时触发小文件检测,在 InsertIntoHiveTable 中判断如果开启小文件合并,并且文件的平均大小低于阈值则执行合并,合并之后再执行 loadTable 或者 loadPartition 操作。(平台侧默认开启)
动态设置 Shuffle Partition。
Spark Adaptive Execution 功能支持 Shuffle 操作下游 Stage 根据上游 Stage 产生的 Shuffle 数据量自动调节下游 Stage 的 Task 数,即 Shuffle Read 时多个小文件 Partition