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 之间。

    

 

原文地址:https://www.cnblogs.com/dongxiucai/p/9759826.html

时间: 2024-10-10 12:30:13

hadoop的企业优化的相关文章

Hadoop企业优化

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

大数据技术之_05_Hadoop学习_04_MapReduce_Hadoop企业优化(重中之重)+HDFS小文件优化方法+MapReduce扩展案例+倒排索引案例(多job串联)+TopN案例+找博客共同粉丝案例+常见错误及解决方案

第6章 Hadoop企业优化(重中之重)6.1 MapReduce 跑的慢的原因6.2 MapReduce优化方法6.2.1 数据输入6.2.2 Map阶段6.2.3 Reduce阶段6.2.4 I/O传输6.2.5 数据倾斜问题6.2.6 常用的调优参数6.3 HDFS小文件优化方法6.3.1 HDFS小文件弊端6.3.2 HDFS小文件解决方案第7章 MapReduce扩展案例7.1 倒排索引案例(多job串联)7.2 TopN案例7.3 找博客共同粉丝案例第8章 常见错误及解决方案 第6章

弹性云服务器如何帮助企业优化成本

企业上云正成为中小企业的重要财务救星,它们希望花更少的资金和精力享受更高的计算速度和效率.因此,越来越多的企业将他们的业务迁移到到云,以提高可访问性.可用性和可伸缩性.那么,云服务器是如何帮助企业实现成本优化的呢?主要通过以下五个方面帮助企业缓解IT管理压力,降低业务运维成本.更灵活的资源管理由于云服务器资源具备弹性调度.伸缩的能力,因此您可以通过长期采购与根据短期需求变化调整资源配额的方式,实现资源的合理搭配,降低资源闲置造成浪费的风险.另外,云服务器支持灵活的资源挂载和再分配,您可以单独订购

hadoop 任务执行优化

任务执行优化 1. 推测式执行: 如果jobtracker 发现有拖后的任务,会再启动一个相同的备份任务,然后哪个先执行完就会去kill掉另一个,因此会在监控页面上经常能看到正常执行完的作业会有被kill掉的任务. 2.推测式执行缺省打开,但如果是代码问题,并不能解决问题,而且会使集群更慢,通过在mapred-site.xml 配置文件中设置 mapred.map.tasks.speculative.execution 和mapred.reduce.tasks.speculative.execu

hadoop 排重优化

如果觉得有帮助的话就顶下吧 在统计的时候经常会用到排重,比如想统计每日登陆用户,但是一个用户一次多次登陆情况,或者一个产品被多少个用户下载..等等情况 截图一是我之前写的代码: 下面是我优化后代码 public static class ReduceTask extends Reducer<Text, Text, Text, IntWritable> {     private IntWritable rval = new IntWritable();     private Multiset

Hadoop集群优化

Hadoop namenode vs RM 小集群:namenode和RM可以部署在一个节点上 大集群:因为namenode和RM的内存需求量较大,应将他们分开部署.如果分开部署的话,要保证slaves文件的内容一样,这样就可以让NM和DN部署在一个节点上 端口 A port number of 0 instructs the server to start on a free port, but this is generally discouraged because it is incom

【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

企业网站建设后如何做SEO优化

随着越来越多的企业触网,也有越来越多的企业认识到网络渠道尤其是搜索引擎对于开展电子商务的重要性,加之个人站长群体的蓬勃兴起,seo的从业者也就越来越多.于是,一些懂行的企业管理者开始考虑或者实施通过seo的方式从百度或者谷歌获得更多的目标性较强的访问者,以此带动网上业绩的提升.笔者通过自己的网络优化博客接过几单企业优化的项目,也算是半个seo的从业者吧,自己所承接的企业网站都在规定时间内达到了客户的目标,在这个过程中积累的了一些经验.在此,就和大家谈下个人认为的企业网站做seo的一般步骤和方法.

Hadoop的集群和优化

Hadoop集群规模小到几个节点就可以组件一个集群,大到由几千个节点组成的超大集群. 在安装Hadoop集群时,把要安装的软件解压到集群内的所有机器上,软件的安装目录也要一致.集群里所有的HADOOP_HOME目录代表安装的根路径,集群中机器要求HADOOP_HOME路径一致. 如果集群中机器环境一致,可以采用这种方法统一安装和配置集群机器,先在一台机器上配置好,然后把配置好的软件的整个文件夹复制到集群中其他机器的目录中. Hadoop的性能优化 分布式集群中通常包含了大量的机器,可能分布到不同