Hadoop调优参数总结

Map端调优参数

属性名称
类型 默认值 说明
io.sort.mb int 100 排序map输出时所使用的内存缓冲区大小,以M为单位。当节点内存较大时,可调高该参数,以减少磁盘写入次数。
io.sort.record.percent float 0.05
用作存储map输出(io.sort.mb)记录的比例。剩余的空间用来存储map输出记录本身
io.sort.spill.percent float 0.80 map输出开始写磁盘的阈值。
io.sort.factor int 10 map输出排序时,一次最多合并的流数。该属性在reduce中也用到。
min.num.spills.for.combine int 3 运行combiner所需的最少溢出文件数(指定combiner时,才生效)。默认为3,即当map的spill的个数大于或等于3时,则会在map的merge操作之前,对各spill执行combine操作,以减少写入到磁盘的文件的数量。
mapred.compress.map.output Boolean false 是否压缩map输出
mapred.map.output.compression.codec Class name org.apache.hadoop.io.

compress.DefaultCodec

用于map输出压缩编解码器
tasktracker.http.threads int 40 每个tasktracker的工作线程数,用于将map输出到reducer。该属性为集群范围的设置,不能由单个作业设置
mapred.map.max.attempts int 4 map任务失败后,重新尝试执行次数。默认值为4,如果任务map任务失败次数大于4,整个计算任务都会失败。
mapred.max.map.failures.percent     不触发作业失败的情况下,允许map任务失败的最大百分比
mapred.map.tasks.speculative.execution boolean true 是否启动map任务的推测执行。默认为开启,当某个map任务运算时间长于平均map时间后,hadoop将启动一个新的map实例。

Reduce端调优参数

属性名称 类型 默认值 说明
mapred.reduce.parallel.copies int 5 用于把map输出复制到reduce的线程数
mapred.reduce.copy.backoff int 300 在声明任务失败之前,reducer获取一个map输出所花的最大事件,以秒为单位。

如果任务失败,reducer可以再此时间内尝试重传

io.sort.factor int 10 排序文件时,一次最多合并的流的数量。该属性也在map端使用。
mapred.job.shuffle.input.buffer.percent float 0.70 在shuffle的复制阶段(copy),分配给map输出的缓冲区占reduce堆空间的百分比。
mapred.job.shuffle.merge.percent float 0.66 map输出缓冲区(由mapred.job.shuffle.input.buffer.percent定义)的阈值使用比例,用于启动合并输出和磁盘溢出写的过程。
mapred.inmem.merge.threshold int 1000 启动合并输出和磁盘溢出写过程的map输出的阈值数。0或者更小的数意味着没有阈值限制,溢出写行为由mapred.job.shuffle.merge.percent单独控制
mapred.job.reduce.input.buffer.percent float 0 在reduce过程中,在内存中保存map输出的空间占整个堆空间的比例。

reduce阶段开始时,内存中的map输出大小不能大于该值。默认情况下,在reduce任务开始之前,所有map输出都合并到磁盘上,以便为reducer提供尽可能多的内存。如果reducer需要的内存较少,可以增加该值,来最小化访问磁盘的次数,提高计算效率。

mapred.reduce.max.attempts int 4 reduce任务失败后,重新尝试执行次数。默认值为4,如果任务reduce任务失败次数大于4,整个计算任务都会失败。
mapred.max.reduce.failures.percent     不触发作业失败的情况下,允许reduce任务失败的最大百分比
mapred.reduce.tasks.speculative.execution boolean true 是否启动reduce任务的推测执行

Hadoop整体调优

属性名称 类型 默认值 说明
mapred.child.java.opts     map或reduce任务的JVM内存大小。若设置太小,则会报错“Java heap space”
mapred.job.reuse.jvm.num.tasks int 1 在一个tasktrakcer上,对于给定作业的每个JVM上可以运行的任务最大数。-1表示无限制,即同一个JVM可以被该作业的所有任务使用。共享JVM的好处在于:作业各个任务之间的状态共享,通过在静态字段中存储相关数据,任务可以较快速访问共享数据。
时间: 2024-11-10 00:39:57

Hadoop调优参数总结的相关文章

hadoop作业调优参数整理及原理

1 Map side tuning参数 1.1 MapTask运行内部原理 当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘.这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能.如上图所示,每一个map都会对应存在一个内存buffer(MapOutputBuffer,即上图的buffer in memory),map会将已经产生的部分结果先写入到该buffer中,这个b

hadoop 调优

Hadoop调优 mapred.tasktracker.map.tasks.maximum 官方解释:The maximum number of map tasks that will be run  simultaneously by a task tracker. 我的理解:一个tasktracker最多可以同时运行的map任务数量 默认值:2 优化值:mapred.tasktracker.map.tasks.maximum = cpu数量 cpu数量 = 服务器CPU总核数 / 每个CPU

JVM常用的调优参数

-Xms512m -Xmx1024m -XX:MaxPermSize=1204m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled 上面是一般性调优测试,设置Java JVM整体的优化参数: set JAVA_OPTS="-Xms256m -Xmx512m -XX:MaxPermSize=1204m XX:+CMSClassUnloadingEnabled -XX:+CMSPe

转: jvm调优参数总结

JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类 现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenured generation和permanet generation.绝大部分的objec被分配在young gener

JVM调优参数

堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制.32位系统下,一般限制在1.5G~2G:64为操作系统对内存无限制.我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m.典型设置: java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:设置JVM最大可用内存为3550M.-Xms3550m:设

Linux内存子系统及常用调优参数

内存子系统及常用调优参数 内存子系统组件 slab  allocator buddy system kswapd pdflush mmu 虚拟化环境: PA(进程地址)-->HA(虚拟机地址)-->MA(物理机地址) 虚拟机转换:PA-->HA guestOS虚拟机内核,OS物理机内核 shadow PT Memory: TLB:提升性能 HugePages 内存大页面 [[email protected] domain1]# cat /proc/meminfo |grep -i  Hu

Linux TCP/IP调优参数 /proc/sys/net/目录

所有的TCP/IP调优参数都位于/proc/sys/net/目录. 例如, 下面是最重要的一些调优参数,后面是它们的含义: /proc/sys/net/core/rmem_default "110592" 定义默认的接收窗口大小:对于更大的 BDP 来说,这个大小也应该更大. /proc/sys/net/core/rmem_max "110592" 定义接收窗口的最大大小:对于更大的 BDP 来说,这个大小也应该更大. /proc/sys/net/core/wmem

JVM性能调优2:JVM性能调优参数整理

本系列包括: JVM性能调优1:JVM性能调优理论及实践(收集整理) JVM性能调优2:JVM性能调优参数整理 JVM性能调优3:JVM_堆溢出分析过程和命令 JVm性能调优4:GC日志分析 JVM性能调优5:Heap堆分析方法  序号 参数名 说明 JDK 默认值 使用过 1 JVM执行模式 2 -client -server 设置该JVM运行与Client 或者Server Hotspot模式,这两种模式从本质上来说是在JVM中运行不同的JIT(运行时编译模块)代码,并且两者在JVM内部

转:Dubbo性能调优参数及原理

from: https://www.cnblogs.com/cyfonly/p/8987043.html 文是针对 Dubbo 协议调用的调优指导,详细说明常用调优参数的作用域及源码. Dubbo调用模型 常用性能调优参数 参数名 作用范围 默认值 说明 备注 threads provider 200 业务处理线程池大小   iothreads provider CPU+1 io线程池大小   queues provider 0 线程池队列大小,当线程池满时,排队等待执行的队列大小, 建议不要设