Hadoop之MapReduce任务的优化
2012-04-06 17:34
155 查看
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个整数的集合。
(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之ReduceTask任务执行(四)
- Hadoop MapReduce之ReduceTask任务执行(五)
- hadoop & hive任务优化之数据详情预知
- hadoop的IO和MapReduce优化参数
- Hadoop运行任务时一直卡在: INFO mapreduce.Job: Running job
- 精通HADOOP(八) - MAPREDUCE任务的基础知识 - 配置作业
- hadoop mapreduce 参数优化
- MapReduce任务的优化
- Hadoop web项目使用Ajax监控MapReduce任务运行情况
- Hadoop(十六)之使用Combiner优化MapReduce【转载】
- hadoop & hive任务优化之系统概况及任务详情查看方法
- Hadoop(十六)之使用Combiner优化MapReduce
- hadoop的IO和MapReduce优化参数
- Hadoop通过HCatalog编写Mapreduce任务访问hive库中schema数据
- 精通HADOOP(九) - MAPREDUCE任务的基础知识 - 执行作业
- hadoop mapreduce 优化
- 用shell获得hadoop中mapreduce任务运行结果的状态
- Hadoop学习笔记(老版本,YARN之前),MapReduce任务Namenode DataNode Jobtracker Tasktracker之间的关系
- 【问题】spark运行python写的mapreduce任务,hadoop平台报错,java.net.ConnectException: 连接超时
- Hadoop之MapReduce的两种任务模式