1、本科生学士学位论文基于云平台的 Hadoop 自动部署工具实现 A Tool for Deploying Hadoop in Cloud姓 名: 学 号: 院 系: 信息科学技术学院 专 业: 计算机科学与技术 指导老师: 年 月北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现II北京大学本科毕业论文导师评阅表学生姓名 学生学号 论文成绩 良学院(系) 信息科学技术学院 学生所在专业 计算机导师姓名 导师单位/所在研究所软件研究所 导师职称 讲师论文题目(中、英文)基于云平台的 Hadoop 自动部署工具实现A Tool for Deploying Hadoop in Clo
2、ud导师评语同学的论文基于云平台的 Hadoop 自动部署工具实现,在燕云云计算平台为用户提供大数据分析服务,具有实用价值。论文思路清晰、结构合理、写作规范。论文的主要不足之处在于没有对虚拟机Hadoop 集群性能进行进一步地实例研究。同学已初步掌握了计算机科学与技术学科的基础理论和专业知识,具有一定的研究能力和工程实践能力。论文已经达到了学士学位论文水平要求,同意提交答辩。导师签名:年 月 日 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现III摘要随着信息化在企业环境中的不断深入,企业中积累了海量的数据。挖掘出这些数据隐藏的价值,对于企业发展至关重要。因此企业迫切需要打
3、造大数据分析服务来提升竞争优势,启迪创新,推动收益增长。然而,目前主流的大数据分析服务一般都基于公有云。这给企业使用大数据带来了不便:首先,公有云要求企业将数据传入云中,在目前的因特网速率下,上 G 上 T 的数据的传输将费时费力。其次,数据在公有云中分析,其分析过程无法控制,分析的结果也可能会留在公有云中。最后,数据一旦离开企业的管辖范围,其安全性和私密性就无法得到保障。这对很多数据至上的企业来说是无法接受的。为此,本文设计并实现了基于企业私有云平台的 Hadoop 自动部署工具,为企业提供快速高效且安全自主的大数据分析服务。本文的主要工作内容包括:1. 介绍研究背景,分析目前基于公有云的大
4、数据分析服务的不足。2. 介绍了燕云私有云计算平台,MapReduce 编程模型和最新的 Hadoop 分布式计算平台。3. 设计并实现了 Hadoop 自动部署工具。4. 在北京大学软件研究所自主研发的燕云私有云计算平台中对 Hadoop 自动部署工具进行了实例验证。讨论了基于虚拟机的 Hadoop 集群的性能瓶颈并提出了相应的解决方案。关键词:大数据分析服务,云计算,Hadoop 分布式计算平台北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现IVA Tool for Deploying Hadoop in CloudAbstract:With the rapid deve
5、lopment and popularization of the Internet, vast amounts of data have been accumulated in the Private Cloud of numerous modern companies. Undoubtedly, it is of vital importance for companies to exploit datas potential value for their future commercial development. Traditional companies ,however, hav
6、e no access to deal with the big data technologically . Thus companies urgently need the big data analysis services in order to create a competitive advantage, enlighten innovation and promote gains.Currently, the generally offered big data analysis services is in the public cloud, which brings much
7、 inconvenience to many firms :Firstly, it is time-consuming and resource-wasting for firms to upload their data to the public cloud under the low network transmission speed. Additionally, during the analysis process , commercial data cannot be controlled in the public cloud which may keep the ultima
8、te results .Most importantly, the datas safety and privacy cannot be guaranteed once left the companies network, especially for those state-owned enterprises whose data may involve sensitive information. Based on such issues, this paper designs and implements a tool for deploying hadoop in cloud, wh
9、ich can help companies provide big data analysis services in their own private cloud safely, swiftly, effectively .This paper is made up of the following sections:1. Introduction of the research background (including the Yan Cloud platform, MapReduce programming model and the Hadoop distributed comp
10、uting platform) and a summary of the Public Cloud disadvantages in the big data analysis services .2. Design and Implementation a tool for deploying Hadoop in cloud.3. Verification of the Hadoop tool to provide big data analysis services in Yan Cloud (a platform developed by Software Engineering Ins
11、titute of Peking University) and some suggestions to optimize the Hadoop in virtual machines .Keywords: Big Data Analysis Services , Cloud Computing,Hadoop北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现V目录第一章 引言 .11.1 论文研究背景 .11.2 现有 Hadoop 自动部署工具介绍 .21.2.1 亚马逊 Elastic MapReduce .21.2.2 微软 Azure HDInsight .31.2.3
12、 阿里 Open Data Processing Service .31.2.4 小结 .31.2.5 现有解决方案的不足 .31.3 本文工作和结构 .41.3.1 本文主要工作 .41.3.2 本文结构 .5第二章 基于云的 Hadoop 自动部署工具相关技术 .62.1 燕云云管理系统 .62.2 MapReduce 编程模型及 Hadoop 介绍 .72.2.1 MapReduce 编程模型介绍 .72.2.2 Hadoop 概述 .82.2.3 Hadoop HDFS 介 绍 .82.2.4 Hadoop MapReduceV2(Yarn) 框架简介 .102.2.5 HADOOP
13、一 般 部 署 流 程 .14第三章 基于云的 Hadoop 自动部署工具的设计与实现 .153.1 用况捕获 .153.2 Hadoop 自动部署工具的体系架构 .163.2.1 体系结构 .163.2.2 各模块介绍 .173.3 面向对象分析顺序图 .223.4 新建 Hadoop 集群的流程图 .243.5 基于云的 Hadoop 部署工具的优势 .25第四章 基于云的 Hadoop 自动部署工具验证 .264.1 新建 Hadoop 集群 .26北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现VI4.2 提交 MapReduce 任务 .284.3 工具运行结果 .
14、294.4 虚拟集群 Hadoop 性能分析 .29第五章 工作总结和展望 .315.1 本文工作总结 .315.2 工作展望 .31参考文献 .32致谢 .33北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现1第 一 章 引 言1.1 论文研究背景云计算和大数据分析是全球企业最为关注的两大 IT 话题。大数据分析提供了独具价值的洞察,帮助企业打造竞争优势,启迪创新,推动收益增长。而作为 IT 服务的交付模式,云计算可以增强业务灵活性,增强生产力,同时增加效率、降低成本。根据美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、
15、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。继个人计算变革、互联网变革之后,云计算被看作第三次 IT 浪潮。云计算和大数据分析技术都在不断发展,对于许多企业而言,云计算正在走进现实,并通过部署私有云引领时代潮流。另一方面, 企业正将越来越多的数据存储于云环境中,这些数据不仅类型更为复杂,而且生成速度远远超过以往的记录。据中国移动研究院称,随着全球信息化进程的加快,数据量的增加已经到达了前所未有的速度,2011年创造的信息数据达到180亿GB,而且每年以60%多增加,到2
16、020年全球一年产生的数字信息将达到35ZB,相当于350万亿GB。数据在持续地增多变大,多到现有数据技术无法分析处理,但这些海量数据具有庞大的潜在价值,通过这些数据可以做很多有意义的事情。例如,梅西百货利用大数据分析来实时定价,美国运通使用大数据来预测未来流失客户,国家电网使用大数据来进行城市节电等等。如何能以更加快速、高效、低成本的方式从海量数据中挖掘有价值的、可理解的知识,对于任何企业来说都是相当迫切的事情。从技术上看, 大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘,因此它必须依托
17、云计算的分布式处理、分布式数据库和云存储、虚拟化技术。云计算的目的是通过互联网更好地调用、扩展和管理计算及存储资源和能力,以节省企业的 IT 部署成本,其处理对象是IT 资源、处理能力和各种应用。而大数据的目的是充分挖掘海量数据中的信息,北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现2发现数据中的价值,其处理对象是各种数据。可以说,大数据为云计算提供了很有价值的用武之地。因此,云计算和大数据的有机结合很有意义,这将发挥二者最大的优势。云计算能为大数据提供弹性而又强大的存储和计算能力,更加迅速的获得海量数据中的潜在价值;而来自大数据的业务需求,能为云计算的落地找到更多的实际应
18、用。众多的大数据处理工具中,使用最为广泛的是 Apache Hadoop。它是一款开源的分布式计算平台,目前已经成为管理规模化大数据的准标准平台。借助简单编程模型,Hadoop 能够轻松处理整个计算机集群的庞大数据集,而将 Hadoop集群迁移部署到云上运行,用户不仅可以在短短几分钟内启动一个 Hadoop 集群,而且可以根据数据规模来轻松增加或减少集群的规模。另一方面,用户可以更专注于数据分析而不是平台搭建,同时云计算的动态伸缩性也可以帮助用户达到节省资源和能耗的目的。因此研究 Hadoop 集群在云端的自动化部署是一项很有实际价值的研究内容。1.2 现有 Hadoop 自动部署工具介绍很多
19、云服务商都开始提供基于 Hadoop 分布式计算平台的大数据分析服务,目前最流行的有亚马逊,微软和阿里巴巴等公司。下面本文将分别介绍这三家公司提供的大数据分析服务,并分析这种服务模式的优缺点。1.2.1 亚马逊 Elastic MapReduceAmazon Elastic MapReduce (Amazon EMR) 是一种 Web 服务,让用户能够轻松快速地处理大量数据。Amazon EMR 基于 Hadoop 开源分布式计算平台,将数据分布在可重新调整大小的 Amazon EC2 实例集群中并进行处理。Amazon EMR 可用于各种应用程序中,包括日志分析、Web 索引、数据仓库、机器
20、学习、财务分析、科学模拟和生物信息学。客户每年启动使用数百万的 Amazon EMR 集群。 Amazon EMR 可以迅速、轻松地预配置所需的容量,并随时添加或移除容量。在处理要求不确定或者不能预料的情况下,这将非常有用。例如,如果处理大多数发生在夜间,那么,白天可能需要 100 个实例,而夜间则可能需要 500 个实例。另一种情况是,北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现3可能在短期内需要巨大的计算资源。借助于 Amazon EMR,用户可以迅速地预配置数百或者数千个实例,并在工作完成后随时关闭,避免为空闲的容量付费。1.2.2 微软 Azure HDInsig
21、htHDInsight 是 Microsoft 所提供的基于 Hadoop 的服务,它将 100% 的 Apache Hadoop 解决方案引入到云中。HDInsight 是一个基于云的现代数据平台,可管理任何类型(无论是结构化还是非结构化)、任何规模的数据,可利用它获得大型数据的完全价值。借助 HDInsight,用户可以通过 Microsoft 的现代数据平台无缝地处理所有类型的数据,该数据平台简单且易于管理,可提供完全在云中运行的、开放式企业级 Hadoop 服务。由于与 Microsoft 数据平台相集成,因此,可以使用 PowerPivot、Power View 和其他 Micros
22、oft BI 工具来分析 Hadoop 数据。1.2.3 阿里 Open Data Processing Service开放数据处理服务(Open Data Processing Service, 简称 ODPS)是基于飞天分布式平台,由阿里云自主研发的海量数据离线处理服务。 ODPS 以Restful API 的形式提供针对 PB 级别数据的、实时性要求不高的批量处理能力,主要应用于数据分析与统计、数据挖掘、商业智能等领域。阿里金融、淘宝指数、数据魔方等阿里巴巴关键数据业务的离线处理作业都运行在 ODPS 上。1.2.4 小结前 3 小节主要讨论了目前最流行的云服务商们提供的大数据解决方案。
23、对于很多中小企业来说,它们可以把数据迁入到云中,从而减少服务器的投入成本和维护成本,而且可以大大提高系统的安全性和可靠性。另一方面,云服务商提供的大数据处理服务降低了大数据平台的技术难度,显著提高了运算性能,使得企业可以对大数据进行更深度的挖掘,提供给企业核心应用软件更精准的数据,从而产生更高级的增值应用,让企业更有效的提高管理和降低费用。1.2.5 现有解决方案的不足北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实现4目前,大多数云服务提供商都意识到了大数据处理服务的重要性并提出了相应的解决方案。 它们一般都是基于自家的公有云和 Hadoop 开源分布式计算平台来为用户提供大
24、数据分析服务。这种方案存在的问题在于: 企业需要将数据导入到云服务商提供的公有云当中。当数据规模特别大时,这是很耗费时间和带宽资源的,很有可能得不偿失。花费在数据传输上的时间和金钱成本会让企业对大数据服务望而却步。 企业数据存储在公有云中,数据的私密性无法得到保证。这对很多企业来说是无法接受的。尤其是那些国有企业,它们的数据是其核心,可能会涉及到国家安全等各个方面。数据的私密性对于这种企业来说相当重要。因此使用基于公有云提供的大数据服务是行不通的。 服务质量不受企业自身控制。整个大数据分析服务基于一个遥远的数据中心,服务质量可能会受到网络等因素的影响。因此,针对上文提出的基于公有云的大数据分析
25、服务的问题,本文实现了一个基于云的 Hadoop 自动部署工具。利用本工具,企业可以很方便地在自家的私有云当中提供大数据分析服务,从而带来下面这些优势: 数据传输快捷:数据本来就存储在企业的数据中心当中,企业可以采用磁盘拷贝或磁盘直接挂载等方式实现数据的快速传输。 数据私密性可以保证:私有云部署在企业数据中心的防火墙内,因而可以提供对数据私密性最有效的控制。 服务质量稳定:私有云一般在防火墙之后,所以当公司员工访问那些基于私有云的应用时,是不会受到网络不稳定的影响。下文将会详细介绍基于云的 Hadoop 自动部署工具。1.3 本文工作和结构1.3.1 本文主要工作本文的主要工作包括: 1. 介绍研究背景,分析目前基于公有云的大数据分析服务的不足。2. 介绍了燕云云计算平台,MapReduce 编程模型和最新的 Hadoop 分布式计算平台。3. 设计并实现了基于云平台的 Hadoop 自动部署工具。