hadoop的企业优化
前言:
Mapreduce程序的效率的瓶颈在于两点:
计算机性能:
CPU、内存、磁盘健康、网络
I/O操作:
数据倾斜
map和reduce数量设置不合理
map的运行时间太长,导致reduc的等待过久
小文件过多
大量的补课分块的超大文件
spill(溢写)次数过多
merge(合并)次数过多
MapReduce优化方法
数据输入:
(1)合并小文件:在执行任务前将小文件进行合并
(2)采用CombineTextInputformat来作为输入,解决输入端大量小文件的场景。将多个小文件从逻辑上规划到一个切片中,这样,多个小文件就可以交给一个 maptask。
CombineTextInputFormat.setMaxInputSplitSize(job, 4194304);// 4m
CombineTextInputFormat.setMinInputSplitSize(job, 2097152);// 2m
job.setInputFormatClass(CombineTextInputFormat.class)
Map阶段:
(1)减少溢写(spill)操作:通过调整 io.sort.mb 及 sort.spill.percent 参数值,增大触发spill 的内存上限,减少 spill 次数,从而减少磁盘 IO。
(2)减少合并(merge)操作:通过调整 io.sort.factor 参数,增大 merge 的文件数目,减少 merge 的次数,从而缩短 mr 处理时间。
(3)在不影响业务逻辑的前提下,先进行combine处理,减少I/O。
Reduce阶段:
(1)合理设置map和reduce的数量
(2)设置map、reduce共存:调整 slowstart.completedmaps 参数,使 map 运行到一定程度后,reduce 也开始运行,减少reduce 的等待时间。
(3)规避使用reduce
(4)合理使用reduce端的buffer
I/O传输:
(1)采用数据压缩的方法,减少网络IO时间
(2)使用sequenceFile二进制文件
数据倾斜问题:
(1)抽样和范围分区
(2)自定义分区
(3)Combine
(4)采用Map join,尽量避免reduce join
JVM重用:
对于大量的小文件job,开启JVM重用会减少45%运行时间。
具体设置:mapreduce.job.jvm.numtasks 值在 10-20 之间。
hadoop的企业优化的更多相关文章
- Hadoop生态圈-hive优化手段-作业和查询优化
Hadoop生态圈-hive优化手段-作业和查询优化 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- 数据开源工具:Hadoop为企业带来什么?
熟悉大数据的人一定不会对大名鼎鼎的Hadoop工具陌生,Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.Hadoop的框架最核 ...
- haodoop企业优化
MapReduce 跑的慢的原因 MapReduce程序效率的瓶颈在于两点 计算机性能 CPU,内存,磁盘健康,网络 I/O操作优化 数据倾斜 Map和Reduce数设置不合理 Map运行时间太长,导 ...
- nginx配置文件企业优化
1.1 企业规范优化Nginx配置文件 第一个里程碑:创建扩展目录,生成虚拟主机配置文件 mkdir extra sed -n '10,15p' nginx.conf >extra/www.co ...
- oa办公系统快速开发工具,助力企业优化升级
随着互联网的快速发展.信息化 IT 技术的不断进步.移动互联新技术的兴起,不管是大的集团企业还是中小型企业,纸质化的办公模式已不能满足现有需求,构建oa平台,为员工提供高效的办公环境尤其重要. 我们先 ...
- hadoop 任务执行优化
任务执行优化 1. 推测式执行: 如果jobtracker 发现有拖后的任务,会再启动一个相同的备份任务,然后哪个先执行完就会去kill掉另一个,因此会在监控页面上经常能看到正常执行完的作业会有被ki ...
- Hadoop记录-NameNode优化
1.NameNode启动过程 加载FSImage: 回放EditLog: 执行CheckPoint(非必须步骤,结合实际情况和参数确定,后续详述): 收集所有DataNode的注册和数据块汇报. 采用 ...
- Hive 的企业优化
优化 数据优化 一.从大表拆分成小表(更快地检索) 引用:Hive LanguageManual DDL eg2:常用于分表 create table if not exists default.ce ...
- 【Hadoop】Hadoop MR 性能优化 Combiner机制
1.概念 2.参考资料 提高hadoop的mapreduce job效率笔记之二(尽量的用Combiner) :http://sishuo(k).com/forum/blogPost/list/582 ...
随机推荐
- PLSQL基础学习-文字
--oracle 练习: /********************PL/SQL编程基础*******************************/ --firstday -->>&g ...
- zabbix教程
zabbix官方文档:https://www.zabbix.com/documentation/current/zh/manual zabbix视频教程:https://www.bilibili.co ...
- Autofac与AOP功能例子
using Autofac.Extras.DynamicProxy; using System; using System.Collections.Generic; using System.Linq ...
- 背水一战 Windows 10 (87) - 文件系统: 获取文件的属性, 修改文件的属性, 获取文件的缩略图
[源码下载] 背水一战 Windows 10 (87) - 文件系统: 获取文件的属性, 修改文件的属性, 获取文件的缩略图 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 获 ...
- CPU Hardwar
GPU负责把线程块分配到各个SM上处理. CUDA对申请的线程块何时运行,以及在哪个SM上运行是没有保证的.这恰好是GPU的优势,这种方式带来了灵活性,不需程序根据SM的数量去配置程序. 但是一个bl ...
- go操作redis
package main import ( "fmt" "github.com/gomodule/redigo/redis" ) func main() { c ...
- vue moment库格式化处理后端传的日期
开篇 日期时间格式前端和后端都可以处理,我比较推荐前端来处理(定制化高),下面我就介绍下两种处理的方式 后端处理 django默认不经处理传给前端的日期格式为2018-08-26T19:53:36.5 ...
- 线程误区-join,wait(里边还是调用的wait)
1.一个线程执行结束后会执行该线程自身对象的notifyAll方法,这个是在jvm中实现的. 2.join的作用是:当我们调用某个线程的这个方法时,这个方法会挂起调用线程,直到被调用线程(thread ...
- 如何用java POI将word中的内容导入到mysql数据库中
由于作业需要,要求我们将word文档中的数据直接导入到mysql中,在网上找了很常时间,终于将其解决. 由于比较初级,所以处理的word文档是那种比较规范的那种,条例比较清晰,设计的思路也比较简单,就 ...
- 【2019北京集训测试赛(十三)】数据(sj) 冷静分析
题目大意:给你一个代表区间$[1,n]$的线段树,问你随机访问区间$[1,n]$中的一个子区间,覆盖到的线段树节点个数的期望(需要乘上$\frac{n(n-1)}{2}$后输出). 数据范围:$n≤1 ...