MapReduce优化参数

1. 资源相关参数
//以下参数是在用户自己的MapReduce应用程序中配置就可以生效
(1) mapreduce.map.memory.mb: 一个Map Task可使用的内存上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。
(2) mapreduce.reduce.memory.mb: 一个Reduce Task可使用的资源上限(单位:MB),默认为1024。如果Reduce Task实际使用的资源量超过该值,则会被强制杀死。
(3) mapreduce.map.cpu.vcores: 每个Maptask可用的最多cpu core数目, 默认值: 1
(4) mapreduce.reduce.cpu.vcores: 每个Reducetask可用最多cpu core数目默认值: 1
(5) mapreduce.map.java.opts: Map Task的JVM参数,你可以在此配置默认的java heap
size等参数, 例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@[email protected]”
(@[email protected]会被Hadoop框架自动换为相应的taskid), 默认值: “”
(6) mapreduce.reduce.java.opts: Reduce Task的JVM参数,你可以在此配置默认的java
heap size等参数, 例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@[email protected]”, 默认值: “”
//应该在yarn启动之前就配置在服务器的配置文件中才能生效
(1) yarn.scheduler.minimum-allocation-mb RM中每个容器请求的最小配置,以MB为单位,默认1024。
(2) yarn.scheduler.maximum-allocation-mb RM中每个容器请求的最大分配,以MB为单位,默认8192。
(3) yarn.scheduler.minimum-allocation-vcores 1
(4)yarn.scheduler.maximum-allocation-vcores 32
(5) yarn.nodemanager.resource.memory-mb 表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
//shuffle性能优化的关键参数,应在yarn启动之前就配置好
(1) mapreduce.task.io.sort.mb 100 shuffle的环形缓冲区大小,默认100m
(2) mapreduce.map.sort.spill.percent 0.8 环形缓冲区溢出的阈值,默认80%
2. 容错相关参数
(1) mapreduce.map.maxattempts: 每个Map Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4。
(2) mapreduce.reduce.maxattempts: 每个Reduce Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4。
(3) mapreduce.map.failures.maxpercent: 当失败的Map Task失败比例超过该值,整个作业则失败,默认值为0. 如果你的应用程序允许丢弃部分输入数据,则该该值设为一个大于0的值,比如5,表示如果有低于5%的Map Task失败(如果一个Map Task重试次数超过mapreduce.map.maxattempts,则认为这个Map Task失败,其对应的输入数据将不会产生任何结果),整个作业扔认为成功。
(4) mapreduce.reduce.failures.maxpercent: 当失败的Reduce Task失败比例超过该值为,整个作业则失败,默认值为0.
(5) mapreduce.task.timeout:如果一个task在一定时间内没有任何进入,即不会读取新的数据,也没有输出数据,则认为该task处于block状态,可能是临时卡住,也许永远会卡住。为了防止因为用户程序永远block不退出,则强制设置了一个超时时间(单位毫秒),默认是600000,值为0将禁用超时。。
3. 效率跟稳定性参数
(1) mapreduce.map.speculative: 是否为Map Task打开推测执行机制,默认为true, 如果为true,则可以并行执行一些Map任务的多个实例。
(2) mapreduce.reduce.speculative: 是否为Reduce Task打开推测执行机制,默认为true
(3)mapreduce.input.fileinputformat.split.minsize: FileInputFormat做切片时最小切片大小,默认1。
(5)mapreduce.input.fileinputformat.split.maxsize: FileInputFormat做切片时最大切片大小
推测执行机制(Speculative Execution):它根据一定的法则推测出“拖后腿”的任务,并为这样的任务启动一个备份任务,让该任务与原始任务同时处理同一份数据,并最终选用最先成功运行完成任务的计算结果作为最终结果。

原文地址:http://blog.51cto.com/13587708/2294898

时间: 2024-10-09 18:29:00

MapReduce优化参数的相关文章

MySql常用命令--优化参数以及日常管理

显示插入查询的优化参数: show variables like "concurrent_insert"; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | concurrent_insert | AUTO | +-------------------+-------+ set GLOBAL concurrent_insert=2; 插入数据时MySQL会对插入

模拟优化参数optimizer_switch选项mrr(Multi_Range Read)对查询优化的影响

11.1背景:模拟优化参数optimizer_switch选项mrr(Multi_Range Read)对查询优化的影响 11.2建表语句 mysql> show create table order_line\G; *************************** 1. row *************************** Table: order_line Create Table: CREATE TABLE `order_line` ( `ol_o_id` int(11)

php-fpm优化参数介绍

1.php-fpm优化参数介绍他们分别是:pm.pm.max_children.pm.start_servers.pm.min_spare_servers.pm.max_spare_servers. pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态).在更老一些的版本中,dynamic被称作apache-like.这个要注意看配置文件的说明. 下面4个参数的意思分别为: pm.max_children:静态方式下开启的php-fpm进程数量pm.star

hadoop mapreduce 端参数优化

在MapReduce执行过程中,特别是Shuffle阶段,尽量使用内存缓冲区存储数据,减少磁盘溢写次数:同时在作业执行过程中增加并行度,都能够显著提高系统性能,这也是配置优化的一个重要依据. 下面分别介绍I/O属性和MapReduce属性这两个类的部分属性,并指明其优化方向. 1 I/O属性类的优化 I/O属性类主要包括在Shuffle阶段中相关的I/O过程的属性,在分析了每个具体属性后从以下几个属性入手进行优化. (1) io.sort.factor属性,int类型,Map端和Reduce端使

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阶段

MapReduce优化

Combiner和Partitioner是用来优化MapReduce的,可以提高MapReduce的运行效率.下面我们来具体学习这两个组件 Combiner 我们以WordCount为例,首先通过下面的示意图直观的了解一下Combiner的位置和作用 从上图可以看出,Combiner介于 Mapper和Reducer之间,combine作为 Map任务的一部分,执行完 map 函数后紧接着执行combine,而reduce 必须在所有的 Map 任务完成后才能进行. 而且还可以看出combine

Hive2优化参数

最近为了调试hive试了很多hive参数,对于hive任务优化,减少使用内存有一些自己的见解,在此做一个记录. 一:Hive是什么 Hive是面向大数据的数据仓库,是一种将SQL转换为mapreduce的工具. 二:mapreduce的基本流程及阶段可进行的优化操作 (其实有很多不用设置有默认的设置或设置后反而执行时间长,此处做了解,参考设置在下一节) 附上网上的一张老图(虽然老但是很具有代表性,哈哈哈) 上面的图知道,对于mapreduce任务可分为以上几个步骤,input.splitting

Hbase 优化参数

在Hbase使用中,除了进行预分区,rowkey合理的设计外,平时也会对系统的内置参数进行优化 1. 堆内存的优化 HBase-site.xml <!-- regionServer的全局memstore的大小,超过该大小会触发flush到磁盘的操作,默认是堆大小的40%,而且regionserver级别的 flush会阻塞客户端读写 --> <property> <name>hbase.regionserver.global.memstore.size</name

大并发内核优化参数

如何分析系统的性能问题: 从以下几个维度进行考虑 当并发压力加大时,往往是吞吐量上不去,肯定是某一个方面出现了瓶颈,(比如CPU,内存(大量的swap),磁盘IO,网络IO,操作系统,应用) 如果CPU比较高(user,sys,wa),user高,可以把系统的线程dump出来,观察系统正在做的逻辑,优化逻辑:sys高,则说明kernel耗费了大量的CPU时间,比如当前的线程的切换比较厉害等等:wa高一般是IO操作比较频繁,CPU频繁调度 查看CPU,还需要观察系统load,一般不要超过系统的物理