hadoop mr优化

1,比较器尽量不要让mr产生序列化和反序列化的转换,参考WritableComparable类

2,reducer严重的数据倾斜,可以考虑自定义分区器

但是之前可以尝试使用combiner来压缩数据看是否能解决问题

3,Map阶段不使用正则表达式

4,split使用StringUtils,据测试性能远高于(String,Scanner,StringTokenizer),writableutils等工具类可以尝试去用一种

5,hadoop产生的数据要压缩,减少数据传输和I/O开销

6,使用结果或中间数据采用紧凑二进制的文件格式avro,sequencefiles,而不是使用txt,也能减少I/O和网络开销

7,能不用reducer就不用,map直接完成,也是为shuffle/sort阶段的开销

8,hive解释器太烂,尽量自己写mr,当然hiveql直观和读性比java程序来得高

时间: 2024-10-19 09:30:06

hadoop mr优化的相关文章

Hadoop性能优化点小结

最近一段时间看了许多Hadoop性能优化相关的资料,于是花了点时间整理了一下,希望给正在苦于Hadoop集群性能问题的博友们一点建议吧. 1.Hadoop在存储有输入数据的节点上运行map任务,可以获得最佳性能,称为"数据本地化优化",所以一般会设置最大分片的大小应该与块大小相同,如果分片跨越2个块的大小,必然要经过网络传输到不同的节点上读取数据. 2.适当的时候使用Combine函数.Combine的阶段是在map阶段到reduce阶段之间进行的,在某些Job中,设置Combine可

Hadoop企业优化

1.MapReduce跑的慢的原因 MapReduce程序效率的瓶颈主要在于两点: 1.机器性能不足(CPU.内存.磁盘健康.网络) 2.IO操作优化 数据倾斜 Map和Reduce数设置不合理 Map运行时间太长,导致Reduce等待的时间太久 小文件 大量不可切分的超大文件 spill溢写次数过多 merge次数过多 2.优化方法 我们可以从六个方面考虑优化问题 数据输入 Map阶段 Reduce阶段 IO传输 数据倾斜问题 常用参数调优 2.1 数据输入 合并小文件:在执行MR任务前将小文

【Hadoop】Hadoop mr wordcount基础

1.基本概念 2.Mapper package com.ares.hadoop.mr.wordcount; import java.io.IOException; import java.util.StringTokenizer; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Mapper; //Long, String,

【Hadoop】Hadoop MR异常处理

1.代码示例 package com.ares.hadoop.mr.flowsort; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; import org.apac

【Hadoop】Hadoop MR 自定义排序

1.概念 2.代码示例 FlowSort package com.ares.hadoop.mr.flowsort; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; i

【Hadoop】Hadoop MR 自定义分组 Partition机制

1.概念 2.Hadoop默认分组机制--所有的Key分到一个组,一个Reduce任务处理 3.代码示例 FlowBean package com.ares.hadoop.mr.flowgroup; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; import org.apache.hadoop.io.WritableComparable; public class FlowBean

【Hadoop】Hadoop MR 性能优化 Combiner机制

1.概念 2.参考资料 提高hadoop的mapreduce job效率笔记之二(尽量的用Combiner) :http://sishuo(k).com/forum/blogPost/list/5829.html Hadoop学习笔记—8.Combiner与自定义Combiner:http://www.tuicool.com/articles/qAzUjav Hadoop深入学习:Combiner:http://blog.csdn.net/cnbird2008/article/details/2

itemcf的hadoop实现优化(Python)

原始数据如下: u1 a,d,b,c u2 a,a,c u3 b,d u4 a,d,c u5 a,b,c 计算公式使用:sim = U(i)∩U(j) / (U(i)∪U(j)) 其中: (U(i)∪U(j)) = U(i) + U(j) -  U(i)∩U(j) 原始的Hadoop实现需要5轮MR,优化后只需要两轮就可以完成. 之前的轮数过多,主要在于计算(U(i)∪U(j)) 的时候,需要多次更改key,并非计算量大.只需要修改一下传递的key,就可以两轮实现. mapper_1.py #!

Hadoop平台优化

一:概述 随着企业要处理的数据量越来越大,MapReduce思想越来越受到重视.Hadoop是MapReduce的一个开源实现,由于其良好的扩展性和容错性,已经得到越来越广泛的应用. 二:存在问题: Hadoop作为一个基础数据处理平台,虽然其应用价值已经得到大家认可,但仍然存在问题,以下是主要几个: 1:Namenode/jobtracker单点故障 Hadoop采用的是master/slaves架构,该架构管理起来比较简单,但存在致命的单点故障和空间容量不足等缺点,这已经严重影响了Hadoo