本篇文章目录导航:
【题目】探讨Docker技术的Hadoop性能优化方法??
【第一章】Docker技术的Hadoop性能优化研究绪论
【第二章】Docker技术的相关知识背景介绍
【3.1-3.2】系统环境搭建和内存配置分析
【3.3-3.5】基于Docker容器的Hadoop架构平台搭建
【第五章】YARN性能优化研究
【第六章】异构系统下数据安全问题
【第七章】Docker技术中Hadoop性能的优化结论与参考文献
第一章绪论
1.1 选题的研究背景及意义
二十一世纪是科学技术的世纪,计算机信息科学飞速的发展,互联网和各种终端设备已经普及千千万万个家庭,人们的生活已经离不开互联网,互联网已经融入我们的生活成为不可或缺的重要部分。随着Web技术和Internet的快速发展,语音、视频、网络日志、互联网搜索索引、互联网文本文件等技术的广泛使用带来了数据量的指数级增长,这预示着大数据时代的来临。在大数据时代,数据具有数据结构更复杂化、数据量剧增的特点,从而使数据的存储和处理的变得更加困难。随着信息化节奏的不断加快,包括政府部门在内的许多领域,如果离开信息化手段,已不能正常运转。然而,信息化发展的不断深入,使得各个领域的信息资源整合加速,由此引发作为信息系统物理核心资源载体的数据中心的需求也不断增长。
一波又一波的技术更新,潮水般的信息向用户涌来,覆盖了非常广阔的业务职能领域,数据信息的数量呈现指数比例增长,占用的空间也从最开始的MB到GB发展到TB甚至PB,迅速增长的大数据规模标志着人类已经进入了大数据时代。随着时间的推移,大数据的飞速发展也带来了许多重要议题。比如大数据存储、分析、数据挖掘和数据的提取等等。在传统的方式中,这种大量的非结构化数据是很难被处理的。它包括文本文件、传感器数据、测井数据,网络数据,社会数据等。产生这种非结构化数据的主要原因是通过互联网上使用的各种应用程序,如智能设备、网络、移动、社交媒体和传感器设备等。
它将大量网络连接的普通计算资源整合起来,构成一个更大的计算资源池向用户提供服务。在云计算平台中,Hadoop凭借其开源的优势得到众多公司以及云计算爱好者的青睐。
Hadoop具有可扩展,经济,可靠,高效等特点,能充分利用集群的高速运算和存储能力来计算指数级增长的海量数据。随着CPU和内存等计算资源不断增加,集群的节点可以把这些资源分成小单位,在同一节点同时执行多项任务。在这些框架中,数据被分成小块并存储在分布式数据库的文件系统中。这些框架用来管理计算资源集群并将资源以容器的形式分配给计算块。
Hadoop YARN[1]是常用于处理海量数据的分布式的计算框架。Hadoop[2]集群管理可用的资源并根据可用性为计算块分配资源。分布式应用程序的作业效率取决于计算资源和计算的数量,其次是应用程序被分割的块[3].在虚拟环境下改变Hadoop[4]的默认内存配置参数,来对比分析Hadoop[5]的性能是否受影响。Apache Hadoop[6]是Map Reduce[7]最着名的实现之一,目前在集群环境和云环境中都有广泛的应用。云计算的一个趋势是基于容器的云,由于容易创建、部署、控制和管理容器的Docker技术[8]的进步而加速。通过在一个完整的文件系统中封装一个软件,Docker容器[9]包含软件需要运行的所有东西,例如代码运行时系统工具和系统库。这保证了软件总是以相同的方式运行,而不管容器运行的环境如何。研究人员已经表明,Hadoop配置[10]
在Map Reduce程序的性能中起着重要的作用[11].适当的配置设置可以减少作业的执行时间,并有效利用集群资源来提高作业的吞吐量。需要配置YARN框架的并发级别,才能在有限的资源内获得最高性能[12].
为了提高Hadoop平台的分布搜索的可扩展性、高效性,虚拟化技术作为Hadoop平台的底层架构建设被越来越多的公司采用。并且Docker容器技术是一种新的虚拟化技术。
2013年Docker容器技术诞生,它是由Dot Cloud公司开发的一个基于Go语言实现云开源的项目。经过几年的发展,Docker体系的生态圈已逐渐形成,同时Dot Cloud公司更名为Docker Inc,并不断对Docker生态圈进行维护和更新。
Docker容器的技术是基于LXC(Linux Container).
Docker在其基础上,更完善的优化了容器的性能、简化了容器的操作与控制程序,使人们对它的感觉更像使用一个轻量级的虚拟机。
因此,一旦服务器需要迁移,Docker容器技术不需要像其它虚拟技术那样需要重新在服务器上进行部署,而是通过容器打包应用,只需要在新的服务器上下载自己的Docker云并启动需要的容器。所以与传统的虚拟技术比,Docker有着“只需封装一次,就可随处运行,随处移植”的优势。
在Docker的环境下使用Hadoop,给大数据的应用提供了虚拟化的便利。使用特定的技术去解决I/O的性能问题[13],它允许存储与计算分离,并且提供解决虚拟架构平台下多个用户环境工具,大大简化客户部署hadoop的难度[14],使得Hadoop集群[15]在Docker容器上拥有更好的性能[16].
1.2 论文的主要内容
本文的研究内容主要从有以下几个方面:
本文首先分析传统虚拟化技术与Docker容器技术的差别,通过Docker技术的优点,简单论述基于Docker容器技术搭建Hadoop平台[17]
的优势。在云或集群中的Docker环境中构建Hadoop集群是一种趋势。但是,如何更好地利用硬件资源并提高Docker环境中的Hadoop性能对用户来说是一个挑战。本文研究了Docker环境中Hadoop的内存配置[18],并在改变Hadoop的内存配置的同时分析了Hadoop的性能[19].本文需要配置YARN[20]框架的并发级别,在最少的资源内使Hadoop的性能最佳[21].同时研究了如何控制任务执行的并行性和如何控制并发容器的数量。
接着是HDFS的数据安全问题[22],由于Data Nodes处理的文件片段数量不断增加,可能会带来安全风险。当文件的更多复制存储在云存储系统中时,尤其是在高风险的网络环境中,文件更可能被破坏。本文使用整合秘密共享技术来设计了新的数据分配方案,来提高异构环境下Hadoop系统[23]中的存储安全性。
本文的研究所涉及的领域是Docker容器技术,Hadoop分布式集群[24].系统建设目标是利用Docker容器技术,整合实验室现有的硬件资源,在其基础上搭建起Hadoop平台,然后通过实验,通过对比实验分析出优化Hadoop的实验方案。本文的创新点有以下几个方面:一是通过改变Hadoop[25]的内存配置参数对比默认参数设置,分析其性能的优势。二是适当配置YARN集群框架[26],寻找最佳的并发级别以提高性能。三是提高Hadoop异构环境下数据的安全性。
1.3 论文的组织结构
本文章共分为六章,主要章节和内容的组织结构如下:
第一章:绪论。本章主要内容是介绍本课题的研究背景方向和主要内容,使读者便于了解技术研究的背景知识。最后简单罗列出了本文章节的安排。
第二章:相关背景知识介绍。本章介绍了Hadoop集群、Docker容器技术、秘密共享技术和相关测试应用程序的相关知识。
第三章:本章主要介绍在Docker容器中搭建Hadoop平台过程和相关配置,然后更改Hadoop的默认配置参数,通过两个应用程序测试它的性能,并和默认配置参数进行性能比较,最后得出实验结论。
第四章:介绍YARN优化问题的由来,并且分析了Mapreduce并行化工作,并行执行的效率由Map和Reduce配置的容器数量和资源化分控制。接着通过实验,在有限的计算资源内,设置并发级别来获得执行效率最大化,从而优化Hadoop的性能。
第五章:分析Hadoop在异构环境下数据存在的一些安全隐患,为了解决这些隐患,提出了一些优化改进的新方案,最后通过对比数据得出改进后的方案并没有影响其性能,还提高了其数据安全性。
第六章:总结与展望。对本文的相关内容进行了总结和展望,并分析了本文存在不足之处,然后提出未来可能的研究方向与发展目标。
1.4 本章小结
本章论述了基于Docker技术的Hadoop性能优化的研究背景及意义,为后面的相关章节奠定理论基石。接着,简单阐述本论文主要内容,然后指出了本文各个章节的安排组织结构,以便于读者能更方便快速阅读和把握论文结构、内容主旨。