Hadoop性能参数调优
来源:互联网 发布:淘宝微商哪个赚钱 编辑:程序博客网 时间:2024/05/18 03:52
MapTask运行内部原理
当map task开始运算,并产生中间数据时,其产生的中间结果并非直接就简单的写入磁盘。这中间的过程比较复杂,并且利用到了内存buffer来进行已经产生的部分结果的缓存,并在内存buffer中进行一些预排序来优化整个map的性能。如上图所示,每一个map都会对应存在一个内存buffer(MapOutputBuffer,即上图的buffer in memory),map会将已经产生的部分结果先写入到该buffer中,这个buffer默认是100MB大小,但是这个大小是可以根据job提交时的参数设定来调整的,该参数即为:io.sort.mb。当map的产生数据非常大时,并且把io.sort.mb调大,那么map在整个计算过程中spill的次数就势必会降低,map task对磁盘的操作就会变少,如果map tasks的瓶颈在磁盘上,这样调整就会大大提高map的计算性能
Map side相关参数调优
ReduceTask运行内部原理
reduce的运行是分成三个阶段的。分别为copy->sort->reduce。由于job的每一个map都会根据reduce(n)数将数据分成map 输出结果分成n个partition,所以map的中间结果中是有可能包含每一个reduce需要处理的部分数据的。所以,为了优化reduce的执行时间,hadoop中是等job的第一个map结束后,所有的reduce就开始尝试从完成的map中下载该reduce对应的partition部分数据。这个过程就是通常所说的shuffle,也就是copy过程。
Reduce task在做shuffle时,实际上就是从不同的已经完成的map上去下载属于自己这个reduce的部分数据,由于map通常有许多个,所以对一个reduce来说,下载也可以是并行的从多个map下载,这个并行度是可以调整的,调整参数为:mapred.reduce.parallel.copies(default 5)。默认情况下,每个只会有5个并行的下载线程在从map下数据,如果一个时间段内job完成的map有100个或者更多,那么reduce也最多只能同时下载5个map的数据,所以这个参数比较适合map很多并且完成的比较快的job的情况下调大,有利于reduce更快的获取属于自己部分的数据。
Reduce side相关参数调优
- Hadoop性能参数调优
- HBase性能参数调优
- Hadoop作业性能指标及参数调优实例 (三)Hadoop作业性能参数调优方法
- JVM性能参数调优实践
- JVM性能参数调优实践
- Tomcat性能参数调优设置
- hadoop job 重要性能参数
- hadoop job 重要性能参数
- hadoop job 重要性能参数
- Hadoop job性能参数调整
- hadoop job 重要性能参数
- hadoop job 重要性能参数
- hadoop job 重要性能参数
- JVM性能参数调优实践,尽可能不执行Full GC
- JVM无法分配问题(系统性能参数调优)
- JVM性能参数调优实践,不会执行Full GC,网站无停滞
- JVM性能参数调优实践,不会执行Full GC,网站无停滞
- JVM性能参数调优实践,不会执行Full GC,网站无停滞
- hadoop基础总结
- virtualbox桥接网络配置--CentOS
- 企业级hadoop集群选型配置
- hadoop1.2.1+zookeeper3.4.6+hbase0.94集群环境搭建
- BZOJ 1189: [HNOI2007]紧急疏散evacuate
- Hadoop性能参数调优
- (精)字符集GBK和UTF8的区别说明
- webView混淆的时候的注意
- 安卓训练-开始-管理 Activity 生命周期
- oracle存储过程中如何使用数组(附范例)
- 回旋连续整数打印
- 初探swift语言的学习笔记九(OC与Swift混编)
- Android和JS通信方案
- nginx - 缓存过期影响因素优先级分析