Hadoop入门知识点有哪些


本篇内容介绍了“Hadoop入门知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Hadoop企业优化日常工作1 MapReduce 跑的慢的原因Mapreduce 程序效率的瓶颈在于两点:
1)计算机性能CPU、内存、磁盘健康、网络2)I/O 操作优化数据倾斜map和reduce数设置不合理reduce等待过久小文件过多大量的不可分块的超大文件spill次数过多merge次数过多等。2 MapReduce优化方法MapReduce优化方法主要从以下六个方面考虑:
2.1 数据输入合并小文件:在执行mr任务前将小文件进行合并,大量的小文件会产生大量的map任务,增大map任务装载次数,而任务的装载比较耗时,从而导致 mr 运行较慢。采用ConbinFileInputFormat来作为输入,解决输入端大量小文件场景。2.2 Map阶段减少spill次数:通过调整io.sort.mb及sort.spill.percent参数值,增大触发spill的内存上限,减少spill次数,从而减少磁盘 IO。减少merge次数:通过调整io.sort.factor参数,增大merge的文件数目,减少merge的次数,从而缩短mr处理时间。在 map 之后先进行combine处理,减少 I/O。2.3 Reduce阶段合理设置map和reduce数:两个都不能设置太少,也不能设置太多。太少,会导致task等待,延长处理时间;太多,会导致 map、reduce任务间竞争资源,造成处理超时等错误。设置map、reduce共存:调整slowstart.completedmaps参数,使map运行到一定程度后,reduce也开始运行,减少reduce的等待时间。规避使用reduce,因为Reduce在用于连接数据集的时候将会产生大量的网络消耗。合理设置reduc端的buffer,默认情况下,数据达到一个阈值的时候,buffer中的数据就会写入磁盘,然后reduce会从磁盘中获得所有的数据。也就是说,buffer和reduce是没有直接关联的,中间多个一个写磁盘->读磁盘的过程,既然有这个弊端,那么就可以通过参数来配置,使得buffer中的一部分数据可以直接输送到reduce,从而减少IO开销:mapred.job.reduce.input.buffer.percent,默认为0.0。当值大于0的时候,会保留指定比例的内存读buffer中的数据直接拿给reduce使用。这样一来,设置buffer需要内存,读取数据需要内存,reduce计算也要内存,所以要根据作业的运行情况进行调整。2.4 IO传输采用数据压缩的方式,减少网络IO的的时间。安装Snappy和LZOP压缩编码器。使用SequenceFile二进制文件2.5 数据倾斜问题数据倾斜现象
数据频率倾斜——某一个区域的数据量要远远大于其他区域。
数据大小倾斜——部分记录的大小远 香港云主机远大于平均值。如何收集倾斜数据
在reduce方法中加入记录map输出键的详细情况的功能。3)减少数据倾斜的方法抽样和范围分区
可以通过对原始数据进行抽样得到的结果集来预设分区边界值。自定义分区
另一个抽样和范围分区的替代方案是基于输出键的背景知识进行自定义分区。例如,如果map输出键的单词来源于一本书。其中大部分必然是省略词(stopword)。那么就可以将自定义分区将这部分省略词发送给固定的一部分reduce实例。而将其他的都发送给剩余的reduce实例。Combine
使用Combine可以大量地减小数据频率倾斜和数据大小倾斜。在可能的情况下,combine的目的就是聚合并精简数据。采用Map Join,尽量避免Reduce Join。2.6 常用的调优参数
1)资源相关参数以下参数是在用户自己的mr应用程序中配置就可以生效(mapred-default.xml)应该在yarn启动之前就配置在服务器的配置文件中才能生效(yarn-default.xml)shuffle性能优化的关键参数,应在yarn启动之前就配置好(mapred-default.xml)2)容错相关参数(mapreduce性能优化)3 HDFS小文件优化方法3.1 HDFS小文件弊端HDFS上每个文件都要在namenode上建立一个索引,这个索引的大小约为150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用namenode的内存空间,另一方面就是索引文件过大是的索引速度变慢。3.2 解决方案Hadoop Archive:
是一个高效地将小文件放入HDFS块中的文件存档工具,它能够将多个小文件打包成一个HAR文件,这样在减少namenode内存使用的同时。Sequence file:
sequence file由一系列的二进制key/value组成,如果key为文件名,value为文件内容,则可以将大批小文件合并成一个大文件。CombineFileInputFormat:
CombineFileInputFormat是一种新的inputformat,用于将多个文件合并成一个单独的split,另外,它会考虑数据的存储位置。开启JVM重用
对于大量小文件Job,可以开启JVM重用会减少45%运行时间。
JVM重用理解:一个map运行一个jvm,重用的话,在一个map在jvm上运行完毕后,jvm继续运行其他jvm
具体设置:mapreduce.job.jvm.numtasks值在10-20之间。“Hadoop入门知识点有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注开发云网站,小编将为大家输出更多高质量的实用文章!

相关推荐: Vue中如何实现组件化开发

本篇内容介绍了“Vue中如何实现组件化开发”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1,分别改写成1级选项和2级选项的2个组件(好像比较low)2,引用4级…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/06 22:30
下一篇 09/06 22:30

相关推荐