开发者社区 问答 正文

conslidate是如何优化Hash shuffle时在map端产生的小文件?

conslidate是如何优化Hash shuffle时在map端产生的小文件?

展开
收起
茶什i 2019-10-29 14:06:03 1637 分享 版权
1 条回答
写回答
取消 提交回答
  • 1)conslidate为了解决Hash Shuffle同时打开过多文件导致Writer handler内存使用过大以及产生过多文件导致大量的随机读写带来的低效磁盘IO;2)conslidate根据CPU的个数来决定每个task shuffle map端产生多少个文件,假设原来有10个task,100个reduce,每个CPU有10个CPU
    那么使用hash shuffle会产生10100=1000个文件,conslidate产生1010=100个文件
    备注:conslidate部分减少了文件和文件句柄,并行读很高的情况下(task很多时)还是会很多文件

    2019-10-30 15:05:09
    赞同 展开评论