MapReduce任务的优化
来源:互联网 发布:淘宝3c证书是什么 编辑:程序博客网 时间:2024/06/03 09:12
1、任务调度
任务调度是Hadoop中非常重要的一环,这个优化又涉及两个方面的内容。计算方面:Hadoop总会优先将任务分给空闲的机器,使得所有任务能公平地分享系统资源。IO方面:Hadoop会尽量将Map任务分配给InputSplit所在的机器,以减少网络IO的消耗。
2、数据预处理与InputSplit的大小
MapReduce任务擅长处理少量的大数据,而在处理大量的小数据时,mapreduce的性能就会逊色许多。因此在提交mapreduce任务前可以先对数据进行一次预处理,将数据合并以提高mapreduce的效率。
3、Map与Reduce任务的数量
首先要定义两个概念——Map/Reduce任务槽。Map/Reduce任务槽就是这个集群能够同时运行的Map/Reduce任务的最大数量。
设置mapreduce任务的map数量主要参考的是map的运行时间,设置reduce任务的数量就只需要参考任务槽的设置即可。一般来说,reduce任务的数量应该是reduce任务槽的0.95倍或1.75倍,这是基于不同的考虑来决定的。当reduce任务的数量是任务槽的0.95倍时,如果一个reduce任务失败,hadoop可以很快找到一台空闲的机器重新执行这个任务。当reduce任务是任务槽的1.75倍时,执行速度快的机器可以获得更多的reduce任务,因此可以使负载更均衡,以提高任务的处理速度。
4、Combine函数
Combine函数是用于本地合并数据的函数。在有些情况下,map函数产生的中间数据会有很多重复的,比如在一个简单的wordcount程序中,每个map任务可能会产生很多个《the,1》记录,若将这些记录一一传给reduce任务是很耗时的。所以,我们可以运行自定义的combine函数用于本地合并,这会大大减少网络IO操作的消耗。
- MapReduce任务的优化
- MapReduce的任务的优化
- Hadoop之MapReduce任务的优化
- MapReduce1-2:MapReduce任务的优化
- mapreduce机制及mapreduce任务的分析
- Mongodb的MapReduce优化
- MapReduce的优化
- MapReduce(九): 任务的运行
- 基于MapReduce作业的MapReduce数据流优化
- MapReduce作业的MapReduce数据流优化
- MapReduce优化----基本参数的设定
- HFile Mapreduce阶段的优化
- MapReduce性能优化_8. 优化MapReduce的用户JAVA代码
- hadoop的mapreduce任务的执行流程
- mapreduce任务执行的单步跟踪
- 【hadoop】 3003-mapreduce任务的提交
- Hadoop MapReduce任务的启动分析
- 精通HADOOP(七) - MAPREDUCE任务的基础知识 - Hadoop MapReduce任务的基本构成要素
- 变量在计算机中的存储方式。
- 使用 sqlalchemy 时如何配置使用 postgresql 的 uuid 类型
- Java 线程同步
- 回文串最小划分 dp
- 文献学习-Generating Hard Instances of Lattice Problems
- MapReduce任务的优化
- bzoj 1821 部落划分
- 我的常用笔记
- 消息代理RabbitMQ——介绍篇
- Java封装入门讲解(深入浅出)
- javabean总结
- HDU 1875 畅通工程再续(最小生成树-Kruskal)
- Oracle 11g 分析出那些表缺失索引
- tcflush