Distributed Sort via MapReduce vs. K路归并+快排

  • Distributed Sort via MapReduce
    • Map function just output key+record
    • Partition immediate keys to R pieces and this R pieces is sorted partitions for the key value domain. This functions as bucket sorting
    •  R function does quick sort on input keys(suppose all keys can be held in memory and no external sort needed)
    • Then the computation complexity is(suppose N keys in total)
      • Map phase: N
      • Reduce pahse: R * (N/R * log(N/R)) = NlogN - NlogR
      • Two rounds read & write on input
  • K路归并+快排
    • 快排复杂度:K * (N/K * log(N/K)) = NlogN - NlogK
    • K路归并复杂度:NlogK
    • 对input的两轮读写
  • 总结
    • 若R==K,两者的计算与IO复杂度都相当,但Reduce阶段可分布式并发执行,而K路归并排序只能串行操作,总体来说MapReduce在实际应用中更好。
    • 另外,需要注意的是,两者中IO的时间与CPU计算的时间都相当,假设数据量为1TB(2^40B),IO速度为100MB/s,CPU为2GHZ,K=R=1000,串行处理情况下大致计算如下,并发情况类似:
      • 计算时间:2^40 * (1 + log(2^40) - log1000) / (2 * 2^30)= 2^9* (1 + 40 - 10) = 15000s
      • IO时间:1TB/(100MB/s)  * 2 = 2^21/100 = 20000s 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值