Hadoop性能调优

标签: hadoop 性能调优 | 发表时间:2013-12-12 13:36 | 作者:yeelor
出处:http://www.iteye.com

重要参数

name 说明
mapred.task.profile 是否对任务进行profiling,调用java内置的profile功能,打出相关性能信息
mapred.task.profile.{maps|reduces} 对几个map或reduce进行profiling。非常影响速度,建议在小数据量上尝试
mapred.job.reuse.jvm.num.tasks 1表示不reuse,-1表示无限reuse,其他数值表示每个jvm reuse次数。reuse的时候,map结束时不会释放内存!
mapred.{map|reduce}.tasks.speculative.execution 会对运行慢的任务起一个备份任务,看哪个先完成,kill掉后完成的备份
io.sort.spill.percent 开始spill的内存比例阈值,对map和reduce都生效
mapred.job.shuffle.input.buffer.percent reduce在copy时使用的堆空间的比例
mapred.tasktracker.{map|reduce}.tasks.maximum 一个Tasktracker上可同时运行的最大map、reduce任务数
mapred.reduce.copy.backoff reduce获取一份map输出数据的最大时间,单位秒。
io.compression.codecs 压缩算法
dfs.block.size hdfs上的文件block大小
mapred.reduce.slowstart.completed.maps 控制reduce的启动时机。表示全部map的百分之多少完成后,才启动reduce。如果机器内存紧张,可以适当设大改参数,等大部分map结束并释放内存后才启动reduce;如果希望尽快开始shuffle,则可配合大量map数,将该值设小,以尽早启动reduce,开始copy。
io.sort.mb map使用的缓存,影响spill的次数。
mapred.child.java.opts 同时设置map和reduce的jvm参数
mapred.map.child.java.opts 分开设置map的jvm参数,包括GC策略
mapred.reduce.child.java.opts 分开设置reduce的jvm参数
map.sort.class 对map的输出key的排序方法
mapred.output.compression.type 压缩类型
mapred.min.split.size 每个map的最小输入大小,该值越大,map数越少
mapred.max.split.size 每个map的最大输入大小,该值约小,map数越多
mapred.reduce.parallel.copies reduce从map结果copy数据时,每个reduce起的并行copy线程数。该值越大,io压力越大,但可能引起网络堵塞,copy效率反而降低。
io.sort.factor merge时的并行merge数,同时影响map的spill文件merge和reduce中的merge
mapred.compress.map.output 指定map的输出是否压缩。有助于减小数据量,减小io压力,但压缩和解压有cpu成本,需要慎重选择压缩算法。
mapred.map.output.compression.codec map输出的压缩算法
mapred.output.compress reduce输出是否压缩
mapred.output.compression.codec 控制mapred的输出的压缩的方式
io.sort.record.percent map中间数据的index和data在io.sort.mb中占内存的比例,默认0.05%,需要根据具体数据的特点调整:index的大小固定为16byte,需要根据data的大小调整这个比例,以使io.sort.mb的内存得到充分利用)。

 

 

 

参考:

http://blog.csdn.net/dajuezhao/article/details/6591034



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [hadoop 性能调优] 推荐:

Hadoop性能调优

- - 开源软件 - ITeye博客
是否对任务进行profiling,调用java内置的profile功能,打出相关性能信息. 对几个map或reduce进行profiling. 非常影响速度,建议在小数据量上尝试. 1表示不reuse,-1表示无限reuse,其他数值表示每个jvm reuse次数. reuse的时候,map结束时不会释放内存.

Hadoop性能调优--用户角度

- - CSDN博客云计算推荐文章
hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些值. (1)设置Combiner. 如果是一大批MR程序,如果可以设置一个Combiner,Combiner可减少Map Task中间输出结果,从而减少各个Reduce Task的远程拷贝数据. 量,最终表现为Map Task和Reduce Task执行时间缩短.

heipark------hadoop性能调优笔记

- - 开源软件 - ITeye博客
官方解释:The maximum number of map tasks that will be run  simultaneously by a task tracker.. 我的理解:一个tasktracker最多可以同时运行的map任务数量. 优化值:mapred.tasktracker.map.tasks.maximum = cpu数量.

HBase性能调优

- - 学着站在巨人的肩膀上
我们经常看到一些文章吹嘘某产品如何如何快,如何如何强,而自己测试时却不如描述的一些数据. 其实原因可能在于你还不是真正理解其内部结构,对于其性能调优方法不够了解. 本文转自TaoBao的Ken Wu同学的博客,是目前看到比较完整的HBase调优文章. 原文链接:HBase性能调优. 因官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果.

hbase性能调优

- - 数据库 - ITeye博客
   1)、hbase.regionserver.handler.count:该设置决定了处理RPC的线程数量,默认值是10,通常可以调大,比如:150,当请求内容很大(上MB,比如大的put、使用缓存的scans)的时候,如果该值设置过大则会占用过多的内存,导致频繁的GC,或者出现OutOfMemory,因此该值不是越大越好.

MapReduce - 性能调优

- - CSDN博客云计算推荐文章
        Hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些参数值使作业运行效率达到最优.         对于一大批MapReduce程序,如果可以设置一个Combiner,那么对于提高作业性能是十分有帮助的. Combiner可减少Map Task中间输出的结果,从而减少各个Reduce Task的远程拷贝数据量,最终表现为Map Task和Reduce Task执行时间缩短.

Java 性能调优

- - 编程语言 - ITeye博客
1.用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用. 但如果一个对象实现了Cloneable接口,我们可以调用它的clone()方法. clone()方法不会调用任何类构造函数. 在使用设计模式(Design Pattern)的场合,如果用Factory模式创建对象,则改用clone()方法创建新的对象实例非常简单.

Spark性能调优

- - zzm
通常我们对一个系统进行性能优化无怪乎两个步骤——性能监控和参数调整,本文主要分享的也是这两方面内容. Spark提供了一些基本的Web监控页面,对于日常监控十分有用. http://master:4040(默认端口是4040,可以通过spark.ui.port修改)可获得这些信息:(1)stages和tasks调度情况;(2)RDD大小及内存使用;(3)系统环境信息;(4)正在执行的executor信息.

性能调优攻略

- - 酷壳 - CoolShell.cn
关于性能优化这是一个比较大的话题,在《 由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法. 本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充. 在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的《 代码优化概要》,这篇文章基本上告诉你—— 要进行优化,先得找到性能瓶颈.

[原]Java性能调优

- - 傲慢的上校的专栏
写Java也有n年了,现在还是有不少的坏的代码习惯,也通过学习别人的代码学到了不少好的习惯. 留给自己做个警戒,提示以后写代码的时候注意. 在文章的后面,会提供整理的原材料下载. 1、尽量少用new生成新对象.         用new创建类的实例时,构造雨数链中所有构造函数都会被自动调用,操作速度较慢.