sag*_*gar 5 hadoop mapreduce reducers
由Hadoop wiki给出的计算理想减速器数量为0.95或1.75*(节点*mapred.tasktracker.tasks.maximum)
但什么时候选择0.95和1.75?决定这个乘数时考虑的因素是什么?
假设您的群集中有100个可用的减少位置.
在负载因子为0.95的情况下,所有95个减少任务将同时启动,因为有足够的减少时隙可用于所有任务.这意味着没有任务将在队列中等待,直到其中一个完成.当减少任务是"小"时,我会推荐这个选项,即完成相对较快,或者它们都需要相同的时间,或多或少.
另一方面,当负载因子为1.75时,100个减少任务将同时启动,减少可用的减少时隙,并且75个休息将在队列中等待,直到减少时隙变为可用.这提供了更好的负载平衡,因为如果某些任务比其他任务"更重",即需要更多时间,那么它们将不会成为工作的瓶颈,因为其他减少插槽,而不是完成任务和等待,现在将正在执行队列中的任务.这也减轻了每个reduce任务的负担,因为map输出的数据传播到更多任务.
如果我可以表达我的意见,我不确定这些因素是否总是理想的.通常,我使用大于1.75(有时甚至是4或5)的因子,因为我正在处理大数据,并且我的数据不适合每台机器,除非我将此因子设置得更高并且负载平衡也更好.
| 归档时间: |
|
| 查看次数: |
2807 次 |
| 最近记录: |