我今天在AWS上运行了我的Hadoop程序,使用不同数量的reducer,但是我观察到随着reducer数量的增加,时间(而不是减少)增加。对于时间,我的意思是从地图100%,减少30%到地图100%,减少100%为什么增加减速机的数量会增加减速阶段的运行时间?
1
A
回答
2
请记住,数据需要通过网络发送到reducer,如果您从mapper输出数据不是这样为了增加减速器的数量可能会影响性能,因为结果需要传递到不同的减速器,因为每个减速器创建自己的文件时需要创建更多文件,所以I/O操作会增加。
每个减少需要启动并在节点中创建/实例化,这会导致启动时间的增加。另外,需要将数据分解到需要更多网络传输时间和解析时间的整个数量的减速器中。
此外,还有一个最佳实践减速器的数量设置为零,如果你不使用作为Hadoop的并不需要担心创建它们,整个过程会更快
减少的效率在很大程度上受洗牌效果的驱动。
为应用程序(r)配置的缩减的数量显然是一个关键因素。
有过多或过少的减少是反生产力:
太少减少的原因在其上降低定节点上的过分负载 - 在极端情况下,我们已经看到了 100GB per-减少处理减少。这也导致非常糟糕的故障恢复方案,因为单个失败的减少对作业的延迟具有显着的,不利的影响。
太多的减少会对洗牌横条产生不利影响。另外,在极端情况下,会导致创建作为作业的输出 的太多小文件 - 这会损害NameNode以及后续需要处理大量小文件的Map-Reduce应用程序的性能 。
相关问题
- 1. 增加JOIN语句中的字段数是否增加/减少执行速度?
- 2. 正方形的增加/减小速度
- 3. 为什么Opened_tables快速增长以及如何减慢速度?
- 4. 为什么在线程数增加时请求的数量会减少?
- 5. 高阶减速机应用于多个减速机
- 6. 为什么增加innodb_buffer_pool_size减慢选择?
- 7. 减速和加速
- 8. 减速时机
- 9. 减速机为空时,商店没有有效的减速机
- 10. 如果我增加max_excecution_time将会加载时间会增加还是减少?
- 11. 添加功能,减速机
- 12. 减少和增加浮动增量android
- 13. 为什么我的hadoop减速机没有运行/被调用?
- 14. 轻松快速地增加/减少整数的持久存储
- 15. 为什么在这段代码中,信号量会增加而不是减少?
- 16. 设计/组合减速机减速机
- 17. 用按钮增加或减少摆动计时器速度?
- 18. AS3加速和减速
- 19. 什么是添加增量递减函数的最佳方式
- 20. 减速机的配置方法中的呼叫进度或增加计数器
- 21. 增加速度
- 22. 加速并行减少OpenCL
- 23. Java:加快速度并减缓时间
- 24. 增加/减少大量整数
- 25. 合并减速机在另一减速
- 26. NumberPicker的设置增加/减少间隔
- 27. 跟着加速和减速的鼠标
- 28. 减速器行为
- 29. 为什么要添加一行计算减少运行时间?
- 30. 为什么缓冲速度随着缓冲区大小的增加而增加?
感谢您的启发答案! – xxx222