`
臻是二哥
  • 浏览: 184027 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
Group-logo
Java技术分享
浏览量:0
社区版块
存档分类
最新评论

Reducer多少个最佳

 
阅读更多

MapReduce框架的执行流程,我们知道,输入文件会被分成多个splits,每个split对应一个Mapper,所以Mapper的数量由splits的数目决定。

Reducer的数目可以通过job.setNumReduceTasks()函数来设置,默认情况下只有一个,有些时候,Reducer只有一个并不是性能最高,因此我们究竟设置多少个Reducer合适呢?

hadoop中,有个叫做slots的概念,Mapper或者Reducer执行时都得获得一个splot才能继续,否则只能等待。Slot可以理解为TaskTracker能并发执行多少个任务。

Slot分为mapper slot Reducer slot,分别对应最大可执行的mapper数和reducer数。用户可以通过修改mapred-site.xml文件的mapred.tasktracker.map.tasks.maximummapred.tasktracker.reduce.tasks.maximum来设置slot的值,默认为2.

集群中reducer slot的总数==总结点数*每个节点的reducer slot数目,每个节点的reducer slot数目由mapred.tasktracker.reduce.tasks.maximum来确定。

Reducer的最佳的数目值与总的reducer slot数目有关,reducer的最佳数目值应该略小于reducer slot的总数。这样做的目的:首先让所有的reducer可以并行执行,其次对于未分配的slot,可以在reducer发生故障时,立即分配给新创建的Reducer.

当然,在设置Reducer数目的时候还得考虑Mapper的数目。按照MapReduce的思想,应该Mapper的数目>=Reducer的数目。

假设Mapper的数目<Reducer的数目,那么按照MapReduce的流程,就会有Reducer剩余,剩余的Reducer根本收不到来自Mapper的输入,白白浪费资源。

因此,不管如何,Reducers<Mappers是必不可少的前提。

当然,MapReduce的值也不是随意设定的,他和机器的内存以及处理器核数等等都有关系,真是的集群环境需要考虑的还有很多。

 

 

 

 

分享到:
评论

相关推荐

    redux中reducer 为什么最好是纯函数.md

    redux中reducer 为什么最好是纯函数.md

    reducer

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 npm run eject 注意:这是单向操作。 ...

    reducer-context-api

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 yarn eject 注意:这是单向操作。 eject ...

    react_hooks_reducer

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 yarn eject 注意:这是单向操作。 eject ...

    react-reducer

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 yarn eject 注意:这是单向操作。 eject ...

    react-reducer-example

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 yarn eject 注意:这是单向操作。 eject ...

    Use-Reducer-Practice

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 npm run eject 注意:这是单向操作。 ...

    use-reducer-hook

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。npm run eject 注意:这是单向操作。 eject ,...

    context_and_reducer_hooks

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 最小化构建,文件名包含哈希。 您的应用已准备好进行部署! 有关更多信息,请参见有关的部分。yarn eject 注意:这是单向操作。 eject ,您将无法...

    react-hooks-context-reducer-example

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 最小化构建,文件名包含哈希。 您的应用已准备好进行部署! 有关更多信息,请参见有关的部分。yarn eject 注意:这是单向操作。 eject ,您将无法...

    react_reducer

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 npm run eject 注意:这是单向操作。 ...

    react-contextReducerTodo:使用ContextAPI和Reducers的ReactJS TODO应用

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 npm run eject 注意:这是单向操作。 ...

    Todo:Todo在React.js中使用Context和Reducer

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。 yarn eject 注意:这是单向操作。 eject ...

    todo-app-reducer:我使用过useReducer制作了这个应用程序,而且我也遵循了费尔南多·埃雷拉(Udermy)在乌迪米(Udemy)的课程

    它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署! 有关更多信息,请参见关于的部分。yarn eject 注意:这是单向操作。 eject ,您...

    阿里巴巴开源的分布式计算系统 JStorm.zip

     应用场景 JStorm处理数据的方式是基于消息的流水线处理, 因此特别适合无状态计算,也就是计算单元的依赖的数据全部在接受的消息中可以找到, 并且最好一个数据流不依赖另外一个数据流。因此,常常用于日志分析,...

    react-redux:研究Redux与UseReducer的存储库

    React-Redux 该项目是出于研究目的而编写的,代码并不是真正的最佳代码... 每个useReducer()提供它们自己的分派函数,仅处理由使用的reducer函数指定的动作,而Redux提供一个函数,该函数消耗任何针对任何reducer函数专

    idiomatic-redux:使用Redux进行状态管理的最佳实践

    学习ReduxRedux的三项原则应用程序...对象-将Redux的三个原理绑定在一起:保留当前应用程序状态对象,让我们分派操作,创建时,您需要指定reducer来告诉状态如何用操作更新视图-这个模式的UI层,通常阵营减速机组成有不

    带有可注射还原剂的Redux商店,用于捆绑拆分,大型应用程序和SPA。-React开发

    动机通常,在您的应用程序中最好有一个“全局” redux存储,这样可以很容易地将redux-injectable-store Redux存储与可注入的reduce一起用于捆绑拆分,大型应用程序和SPA。 动机通常,在您的应用程序中最好有一个...

    react-todo:ReactJS + CSS模块+ Sass +蓝图

    在那儿,我开始这个项目的目的是练习和制定一些最佳的开发实践,包括reactJs,redux和reducer,测试,文件夹结构,命名,整理,配置等等。 一个小时后,我刚刚说了“等待!”,我在考虑应该创建哪种类型的应用程序...

    Hadoop实战中文版

    hadoop.com  11.3 小结 第12章 案例研究 12.1 转换《纽约时报》1100 万个库存图片文档 12.2 挖掘中国移动的数据 12.3 在StumbleUpon 推荐最佳网站 12.3.1 分布式StumbleUpon 的开端 12.3.2 HBase 和...

Global site tag (gtag.js) - Google Analytics