Hadoop云平台优化策略研究

来源 :科技尚品 | 被引量 : 0次 | 上传用户:new_java
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:随着Hadoop平台的日益完善,其应用范围越来越普及,但仍然存在诸多影响性能的问题,比如调度算法中Hadoop配置对象开销大、MapReduce阶段中排序对象的序列化及反序列的高开销问题。本文针对以上问题,提出解决方案。
  关键词:Hadoop云平台;优化策略
  1 研究背景
  由于具备低成本和前所未有的高扩展性,Hadoop已被公认为是新一代的大数据处理平台。Hadoop正带来了新一轮的数据革命。虽然hadoop的应用价值已得到广泛认可,但其有诸多问题依然制约着hadoop的发展,优化hadoop性能主要可以从以下方面着手:
  1.1 应用程序优化
  考Hadoop云平台优化策略研究高效率的应用程序。
  1.2 Hadoop参数优化
  这种优化方法要结合操作协同层面的调优,对hadoop系统的诸多配置参数进行优化调整,使hadoop作业运行速度更快。
  1.3 系统实现优化
  这是源码级的优化,针对hadoop框架及实现机制中不合理的地方进行优化,优化难度大,效果也比较明显。
  本文主要针对hadoop存储及系统实现中的几种高开销问题进行了研究并提出了改进措施。
  2 存在的问题
  2.1 Hadoop的Configuration开销大
  Hadoop的Configuration的配置需要花费大量的时间,hadoop把对象的信息按照hashmap的方式存在于一个xml的配置文件中,读取、解压、分析均来自这一个磁盘的xml文件,这严重影响了IO性能,另外当取对象时需要去调用get()方法,而get()方法的参数会也会引起正则表达式计算和变量替换,这也需要耗费资源。如果对多个对象读取,上面的步骤通过循环语句去实现的话,性能更是将大打折扣。当对象很多的情况下hadoop花费30%用来配置对象。
  2.2 中间压缩结果包含很多无用数据
  spill线程中的压缩和解压缩操作会消耗消耗了大量时间,并且中间结果是临时的。如果使用lz4方法取代lzo level 3,可以减少了30%多的中间数据,并使其能被更快地读取。
  2.3 hadoop中对对象序列化和反序列化消耗太高
  对对象的序列化和反序列化是Hadoop Job中开销最高的操作,特别是对于那些进场使用并且复杂、非主键的key。在hadoop中需要将两个对象进行比较,通常的做法是对这些对象反序列化后再进行比较,但是反序列化是一个耗时的工程。下图1是极端情况下通过java-xprof工具检测得到的结果。
  3 解决方法
  传统的数据读写是按照row-oriented方式读写,也就是顺序读取存储,这样的方式优点是读写相对容易速度也相对较快,但缺点也是相当明显的就是每次读取都读写了一些无用的数据,并且文件的存储量也相对教大。传统存储的抽象图如图2和图3所示。
  解决方法是将record顺序存储的方式改为面向列的数据格式。它遵循“先按列划分,再垂直划分”的设计理念。当查询过程中,针对它并不关心的列时,它会在IO上跳过这些列。也就是按需在磁盘上存取,这种面向列的数据读取方式被称为Parquet,下图4和图5说明了这种存取方式。
  对比图2和图3由可以看出Parquet是面向列的存储,它使得同类型的字段被顺序排在一起。那么这种存储有什么好处呢,好处就是按列存储,可以有效地进行列投影,并且在进行反序列化的时候可以只反序列化需要的列。这样就大大缩减了因为反序列化消耗的时间,除此之外,存储的文件也会相应的减小很多,可以达到原来文件的一半。图6是了采用面向列存储后对某一列投影的示例图。
  下图7是采用Parquet技术后,对比传统存储方式,使用java-xprof技术对hadoop运行效率做了一个跟踪对比,从图中可以看出当只有1字段时,Parquet存储方式是传统基础速度的3倍,当有10字段的时候是传统技术的1.5倍,速度提高明显。
  4 总结
  本文针对hadoop性能调优三种方法中的存储及系统实现进行了研究分析,提出了将row-oriented存储改进为Parquet存储,实验证明改为面向列的存储对系统性能的提高是有效的,但是从图7中可以看出随着列的增加,这种性能优势在降低,后续将针对这一情况进行深入的研究,完善这种技术。
  参考文献
  [1]刘鹏.云计算(第二版)[M].北京:电子工业出版社,2011.
  [2]浅析Hadoop文件格式.[EB/OL].http://www.infoq.com/cn/articles/hadoop-file-format,2012-5-28.
  [3]探究提高Hadoop稳定性与性能的方法 [EB/OL].http://dongxicheng.org/mapreduce/how-to-improve-hadoop-stablility-and-performance/,2013-12-29.
  [4]王宏宇.hadoop平台在云计算中的应用[J].软件,2011,(4):36-39.
  [5]黄晓云.基于HDFS的云存储服务系统研究[D].大连海事大学,2010.
  [6]王永洲.基于HDFS的存储技术的研究[D].南京邮电大学,2013.
  [7]高蓟超.Hadoop平台存储策略的研究与优化[D].北京交通大学,2012.
其他文献
背景和意义:我国目前处于从乙肝高流行区到中度流行区的过渡时期,新生儿乙肝疫苗免疫接种是控制我国乙肝感染流行最经济有效的预防措施之一。北京市自2005年开始实施高剂量乙肝
摘 要:随着科学技术的发展,新型能源的应用越来越广泛,大型风电场的建设越来越多,因此加强对大型风电场的研究在新能源的运用有重要的作用,本文通过对大型风电场接入电网稳定经济运营分析和实践进行探讨,对各种因素对大型风电场的影响、采用的技术方案和经济效益情况进行分析,为风电场接入电网的稳定与用电安全提出一些自己的建议与思考。  关键词:大型风电场;影响;稳定性;经济运营  1 大型风电场接入电网稳定运行
摘 要:随着科技的不断发展,电网建设也在不断进步,当今电网已逐步进入了特高压电网时代。调度机构的职能分工也越来越紧密,调度一体化运行的要求显著提高。电网调度自动化系统的需求应运而生,合理的开发运用调度自动化系统,不仅能够提高电网运行的效率,还能够改善调度和运行人员在处理电网事故时的分析环境和工作条件,有利于他们更为准确快速的处理电网的突发事件,确保电网的稳定运行。  关键词:特高压电网;调度;自动
目的:Cr(Ⅵ)在工业上应用极广,已被国际癌症研究所(IARC)证实是一种强致癌剂,可导致职业性肺癌,但其致癌机制还不是很明确。近10余年来,分子生物学飞速发展,肿瘤发生机制的认识亦随
摘 要:计算机硬盘是计算机系统中重要的硬件组成部分。而硬盘读写磁头的位置控制对于数据读写的速度与精度至关重要。因此,本文提出了一种闭环超前校正的计算机磁盘读写磁头位置控制器,通过对其进行仿真分析可知,系统不仅具有较高的定位速度与精度,而且还提高了系统的稳定性。  关键词:闭环控制;超前校正;读写磁头;位置控制器  0 引言  计算机系统的硬件组成部分主要包括中央处理器、存储器和输入输出设备组成。而
随着社会主义市场经济体制的不断完善,特别是加入WTO,中国广播电视的生存环境和发展战略发生了重大变化,面向受众、占领市场、发展产业、提升效益,已是必然趋势。电台电视台
摘 要:本文从配电主站、通信与继电保护等角度出发,对配电自动化进行了分类,并分析了配电主站的类别,依据配电终端与继电保护的系统差异原则,结合各个城市的用电数据,提出了中型城市配电自动化的具体实践理论,旨在提高配电自动化的效率。  关键词:供电可靠性;配电自动化;系统规划  合理的网架结构以及可靠的配电设备能够为供电的可靠性提供保障,但是,为了达到供电可靠性的需求,不是每一台开关都需要安装配电终端,
  本课题运用蛋白质组学核心技术--双向电泳(2-DE)分析三氯乙烯染毒前、后L-02肝细胞蛋白质组表达改变,应用基质辅助激光解吸电离飞行时间串联质谱(MALDI-TOF-TOF-MS)对差异蛋
摘 要:分析目前服装行业的现状,如何提高当前服装行业制造企业的生产及管理水平已成为一个亟待解决的现实问题,将物联网及云制造技术引入到服装行业将会受益匪浅。本文首先简单阐述云制造的基本框架,再对当前服装行业的现状进行分析,具体对比分析引入云制造技术后对服装行业的生产与管理的高效化提升的应用,最后展望了云制造技术在中国服装行业的应用及前景。  关键词:云制造;物联网;生产;管理;服装行业  0 引言