MapReduce优化设置

Map阶段的优化

主要是确定合适的Map数。那么首先要了解Map数的计算公式:

num_Map_tasks = max[${Mapred.min.split.size}, min(${dfs.block.size}, ${Mapred.max.split.size})] 

    • Mapred.min.split.size指的是数据的最小分割单元大小。
    • Mapred.max.split.size指的是数据的最大分割单元大小。
    • dfs.block.size指的是HDFS设置的数据块大小。

Reduce阶段优化(实际的reduce计算)

        hive 中的reduce预估

         num_Reduce_tasks = min[${Hive.exec.Reducers.max}, (${input.size} / ${ Hive.exec.Reducers.bytes.per.Reducer})]

reduce在运行时往往需要从相关map端复制数据到reduce节点来处理,因此相比于map任务。reduce节点资源是相对比较缺少的,同时相对运行较慢,正确的reduce任务的个数应该是0.95或者1.75 *(节点数 ×mapred.tasktracker.tasks.maximum参数值)。如果任务数是节点个数的0.95倍,那么所有的reduce任务能够在 map任务的输出传输结束后同时开始运行。如果任务数是节点个数的1.75倍,那么高速的节点会在完成他们第一批reduce任务计算之后开始计算第二批 reduce任务,这样的情况更有利于负载均衡。同时需要注意增加reduce的数量虽然会增加系统的资源开销,但是可以改善负载匀衡,降低任务失败带来的负面影响。同样,Reduce任务也能够与 map任务一样,通过设定JobConf 的conf.setNumReduceTasks(int num)方法来增加任务个数。


jvm重用

 

     正常情况下,MapReduce启动的JVM在完成一个task之后就退出了,但是如果任务花费时间很短,又要多次启动JVM的情况下(比如对很

大数据量进行计数操作),JVM的启动时间就会变成一个比较大的overhead。在这种情况下,可以使用jvm重用的参数:

Mapred.Job.reuse.jvm.num.tasks

时间: 2024-10-28 16:22:00

MapReduce优化设置的相关文章

mysql数据库的安装以及常见优化设置

原文:mysql数据库的安装以及常见优化设置 本文根据优才网课程整理,面向web开发者,内容以实用为主,专业DBA可以绕行. 如果你在大公司,可能有专门的DBA来做这些事情,如果你在一个小公司当架构师或者技术总监,或者你自己创业,那DBA的活你也得干了.咱们来讲一下基本的mysql安装和优化. 一: MYSQL安装和基本配置 在linux上安装,可以用包管理工具来安装,比较简单:RedHat 系列:yum -y install mysql mysql-server Debian系列:sudo a

基于linux的web服务器的iptables防火墙安全优化设置

安全规划:开启 80  22 端口并 打开回路(回环地址 127.0.0.1) #iptables –P INPUT ACCEPT #iptables –P OUTPUT ACCEPT #iptables –P FORWARD ACCEPT 以上几步操作是为了在清除所有规则之前,通过所有请求,如果远程操作的话,防止远程链接断开. 接下来清除服务器内置规则和用户自定义规则: #iptables –F #iptables -X 打开ssh端口,用于远程链接用: #iptables –A INPUT

MySQL MyISAM优化设置点滴

先说一点问题: Mysql中的InnoDB和MyISAM是在使用MySQL中最常用的两个表类型,各有优缺点.两种类型最主要的差别就是 InnoDB 支持事务处理与外键和行级锁.而MyISAM不支持.所以Myisam往往就容易被人认为只适合在小项目中使用.但是从数据库需求角度讲,要求99.9%的稳定性,方便的扩展性和高可用性来说的话,那MyISAM绝对应该是首选.MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快, 只是不提供事务支持.大部分项目是读多写少的项目,而Myisam的读

T端mysql优化设置

下面是一个我自己用的设置MYSQL的安全的魔兽世界私服的单机设置办法.这个是针对2-4G内存来设置的.提升MYSQL的吞吐量.实现MYSQL的稳定,让多人在游戏里面玩的时候不至于由于MYSQL而导致很卡[client] port=3306 [mysqld] port=3306 old-passwords=1 basedir="D:\MGCORE-4.1.0-V1.2.1-14007\Web_Mysql\mysql5/" datadir="D:\MGCORE-4.1.0-V1.

ASP.NET在IIS的启动优化设置

ASP.NET在IIS的启动优化设置 约定: IIS=Internet Information Services Manager 概要 因为ASP.NET 程序在第一次启动的时候需要等待太长时间,至少是第二次访问的3倍以上时间,这是由于程序是按需启动的,而且程序会在空闲一段时间后自动关闭. 所以特意做了这个文档来告诉大家怎么能让ASP.NET 程序在第一次启动(或者重启)的时候表现的更好,至少速度上接近第二次访问. IIS 8 如果系统是Windows Server 2012 或以上,那么系统自

MyEclipse 10各种优化设置

1.通用优化设置:字体,UTF-8编码格式设置: http://jingyan.baidu.com/article/b907e627d2c5da46e7891cef.html 2.字母促发代码提示方法: http://jingyan.baidu.com/article/95c9d20df6c56aec4e7561ad.html 3.spring 的XML代码提示: http://blog.csdn.net/sundacheng1989/article/details/8333304

20180607_MyEclipse优化设置

MyEclipse优化设置 取消自动validation validation有一堆,什么xml.jsp.jsf.js等等,我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下! 取消方法: windows–>perferences–>myeclipse–>validation 除开Manual下面的复选框全部选中之外,其他全部不选 手工验证方法: 在要验证的文件上,单击鼠标右键–>myeclipse–>run validation 取消Eclipse拼写检查 拼

Win10传递优化设置技巧

什么是"传递优化缓存" "传递优化"是微软为了加快Windows更新和Microsoft Store应用更新的下载速度,而在Windows10中引入的一种"自组织分布式本地化缓存"设计,可以在用户电脑上缓存更新,以上传给同一局域网或Internet上其他用户电脑,从而实现类似 P2P 下载的加速效果. PS: MS酋长已经分享过Win10开启传递优化的方法,这里不再赘述. Win10传递优化设置技巧:减小缓存.缩短保留时间.限制上传在这个过程中,

Atollic TrueSTUDIO编译选项-优化设置

最近在玩stm32f407,比较懒,就直接使用Atollic TrueSTUDIO,官方版本,还免费,但是编译后,一直感觉代码添加了优化,语句执行顺序和代码不一致,在线调试时,有些变量的数值被优化了,不能直接看,找了很长时间,还看了帮助手册,终于找到了优化设置的选项,如下图: 设置为不使用优化,代码在线调试就很爽了. 原文地址:https://www.cnblogs.com/yddeboke/p/10801723.html