Hadoop之MapReduce任务的优化
来源:互联网 发布:方维p2p源码下载 编辑:程序博客网 时间:2024/05/20 15:59
1. 任务调度
(1)计算方面:Hadoop总会优先将Task分配给空闲的机器,所有的人物能公平地分享系统资源
(2)I/O方面:Hadoop尽量将map Task分配给Input Split所在的机器,以减少网络I/O的消耗。
2.数据预处理与Input Split的大小
(1)提交MapReduce Task前可以先对数据进行一次预处理,将数据合并以提高MapReduce Task的执行效率。参考Map Task 的执行时间,当一个Map Task执行时间比较短的时候,可以分配更多的数据。通过设置map的输入数据大小来调节map的运行时间。
3.map和reduce任务的数量
(1)map任务槽和reduce任务槽。指的是这个集群能够同时运行的map/reduce任务的最大数量。设置MapReduce Task的map数量主要参考的还是map Task的运行时间,而reduce任务的数量就只需要参考任务槽的设置了。
4.combine函数
用于本地合并数据的函数,map中间有很多重复的数据,将这些记录一一传送给reduce task是很耗时的,所以MapReduce框架运行用户写一个combine函数,用于本地合并,这会大大减少网络I/O操作的消耗。job.setCombineClass(combine.class);
5.编写MapReduce程序时,可以选择对map的输出和最终输出结果进行压缩(同时可以选择压缩方式)。在一些情况下,map的中间输出可能会很大,对其进行压缩可以有效减少网络上数据传输量。
6.自定义compator
在Hadoop中,可以自定义数据类型以实现更复杂的目的。当读者想实现k-means算法(一个基础的聚类算法)可以定义k个整数的集合。
- Hadoop之MapReduce任务的优化
- MapReduce任务的优化
- Hadoop MapReduce之任务调度
- hadoop优化之MapReduce篇
- Hadoop之MapReduce的两种任务模式
- MapReduce的任务的优化
- Hadoop MapReduce之任务启动(一)
- Hadoop MapReduce之任务启动(二)
- hadoop优化之MapReduce的Uber方式运行
- hadoop的mapreduce任务的执行流程
- 【hadoop】 3003-mapreduce任务的提交
- Hadoop MapReduce任务的启动分析
- hadoop & hive任务优化之map个数的影响因子
- MapReduce1-2:MapReduce任务的优化
- 精通HADOOP(七) - MAPREDUCE任务的基础知识 - Hadoop MapReduce任务的基本构成要素
- MapReduce优化----hadoop的管道思想
- hadoop的IO和MapReduce优化参数
- hadoop的IO和MapReduce优化参数
- java 线程操作
- Android系统的Binder机制之二——服务代理对象(1)
- ubuntu下安装小企鹅输入法
- 用jquery较简单的实现鼠标移进移出样式变化的效果!
- ASP.NET服务端GZIP压缩(CompressionModule压缩模块)
- Hadoop之MapReduce任务的优化
- Hibernate+struts2+spring 实现分页实例
- 移植tslib1.4 编译问题
- Path发布新版本以平息诉讼风波
- Camera照片质量设置
- Android实现开机自启动无效问题
- 配置完struts,tomcat运行错误java.lang.ClassNotFoundException: org.apache.struts.action.ActionServlet
- 正则表达式练习之题目1103:二次方程计算器
- linux shell 字符串操作(长度,查找,替换)详解