毕业论文范文——基于云平台的Hadoop自动部署工具实现_第1页
毕业论文范文——基于云平台的Hadoop自动部署工具实现_第2页
毕业论文范文——基于云平台的Hadoop自动部署工具实现_第3页
毕业论文范文——基于云平台的Hadoop自动部署工具实现_第4页
毕业论文范文——基于云平台的Hadoop自动部署工具实现_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生学士学位论文 基于云平台的 Hadoop 自动部署 工具实现 A Tool for Deploying Hadoop in Cloud 姓 名: 学 号: 院 系: 信息科学技术学院 专 业: 计算机科学与技术 指导老师: 年 月 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 II 北京大学本科毕业论文导师评阅表 学生姓名学生学号 论文成绩良 学院(系)信息科学技术学院学生所在专业计算机 导师姓名导师单位/ 所在研究所 软件研究所导师职称讲师 论文题目 (中、英文) 基于云平台的 Hadoop 自动部署工具实现 A Tool for Deploying Hadoop in Cloud 导师评语 同学的论文基于云平台的 Hadoop 自动部署工具实现,在燕云云计算平台为 用户提供大数据分析服务,具有实用价值。 论文思路清晰、结构合理、写作规范。论文的主要不足之处在于没有对虚拟机 Hadoop 集群性能进行进一步地实例研究。 同学已初步掌握了计算机科学与技术学科的基础理论和专业知识,具有一定的研 究能力和工程实践能力。论文已经达到了学士学位论文水平要求,同意提交答辩。 导师签名: 年 月 日 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 III 摘要摘要 随着信息化在企业环境中的不断深入,企业中积累了海量的数据。挖掘出 这些数据隐藏的价值,对于企业发展至关重要。因此企业迫切需要打造大数据 分析服务来提升竞争优势,启迪创新,推动收益增长。 然而,目前主流的大数据分析服务一般都基于公有云。这给企业使用大数 据带来了不便:首先,公有云要求企业将数据传入云中,在目前的因特网速率 下,上 G 上 T 的数据的传输将费时费力。其次,数据在公有云中分析,其分析 过程无法控制,分析的结果也可能会留在公有云中。最后,数据一旦离开企业 的管辖范围,其安全性和私密性就无法得到保障。这对很多数据至上的企业来 说是无法接受的。为此,本文设计并实现了基于企业私有云平台的 Hadoop 自动 部署工具,为企业提供快速高效且安全自主的大数据分析服务。 本文的主要工作内容包括: 1. 介绍研究背景,分析目前基于公有云的大数据分析服务的不足。 2. 介绍了燕云私有云计算平台,MapReduce 编程模型和最新的 Hadoop 分 布式计算平台。 3. 设计并实现了 Hadoop 自动部署工具。 4. 在北京大学软件研究所自主研发的燕云私有云计算平台中对 Hadoop 自 动部署工具进行了实例验证。讨论了基于虚拟机的 Hadoop 集群的性能 瓶颈并提出了相应的解决方案。 关键词:大数据分析服务,云计算,关键词:大数据分析服务,云计算,HadoopHadoop 分布式计算平台分布式计算平台 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 IV A Tool for Deploying Hadoop in Cloud Abstract:With the rapid development 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, have 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 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 ultimate 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, which 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 computing 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 Institute of Peking University) and some suggestions to optimize the Hadoop in virtual machines . Keywords: Big Data Analysis Services , Cloud Computing,Hadoop 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 V 目录目录 第一章 引言.1 1.1 论文研究背景 1 1.2 现有 Hadoop 自动部署工具介绍.2 1.2.1 亚马逊 Elastic MapReduce 2 1.2.2 微软 Azure HDInsight 3 1.2.3 阿里 Open Data Processing Service .3 1.2.4 小结 3 1.2.5 现有解决方案的不足 3 1.3 本文工作和结构 4 1.3.1 本文主要工作 4 1.3.2 本文结构 5 第二章 基于云的 Hadoop 自动部署工具相关技术.6 2.1 燕云云管理系统6 2.2 MapReduce 编程模型及 Hadoop 介绍 .7 2.2.1 MapReduce 编程模型介绍 7 2.2.2 Hadoop 概述 .8 2.2.3 Hadoop HDFS 介绍 8 2.2.4 Hadoop MapReduceV2(Yarn) 框架简介 10 2.2.5 HADOOP一般部署流程 .14 第三章 基于云的 Hadoop 自动部署工具的设计与实现.15 3.1 用况捕获.15 3.2 Hadoop 自动部署工具的体系架构 16 3.2.1 体系结构 .16 3.2.2 各模块介绍 .17 3.3 面向对象分析顺序图.22 3.4 新建 Hadoop 集群的流程图 24 3.5 基于云的 Hadoop 部署工具的优势25 第四章 基于云的 Hadoop 自动部署工具验证.26 4.1 新建 Hadoop 集群26 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 VI 4.2 提交 MapReduce 任务.28 4.3 工具运行结果.29 4.4 虚拟集群 Hadoop 性能分析29 第五章 工作总结和展望31 5.1 本文工作总结 .31 5.2 工作展望.31 参考文献.32 致谢.33 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 1 第第一一章章 引引言言 1.11.1 论文研究背景论文研究背景 云计算和大数据分析是全球企业最为关注的两大 IT 话题。大数据分析提供 了独具价值的洞察,帮助企业打造竞争优势,启迪创新,推动收益增长。而作 为 IT 服务的交付模式,云计算可以增强业务灵活性,增强生产力,同时增加效 率、降低成本。根据美国国家标准与技术研究院(NIST)定义:云计算是一种 按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入 可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务), 这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很 少的交互。继个人计算变革、互联网变革之后,云计算被看作第三次 IT 浪潮。 云计算和大数据分析技术都在不断发展,对于许多企业而言,云计算正在走进 现实,并通过部署私有云引领时代潮流。 另一方面,企业正将越来越多的数据存储于云环境中,这些数据不仅类型 更为复杂,而且生成速度远远超过以往的记录。据中国移动研究院称,随着全 球信息化进程的加快,数据量的增加已经到达了前所未有的速度,2011年创造 的信息数据达到180亿GB,而且每年以60%多增加,到2020年全球一年产生的数 字信息将达到35ZB,相当于350万亿GB。数据在持续地增多变大,多到现有数据 技术无法分析处理,但这些海量数据具有庞大的潜在价值,通过这些数据可以 做很多有意义的事情。例如,梅西百货利用大数据分析来实时定价,美国运通 使用大数据来预测未来流失客户,国家电网使用大数据来进行城市节电等等。 如何能以更加快速、高效、低成本的方式从海量数据中挖掘有价值的、可理解 的知识,对于任何企业来说都是相当迫切的事情。 从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。 大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在 于对海量数据进行分布式数据挖掘,因此它必须依托云计算的分布式处理、分 布式数据库和云存储、虚拟化技术。云计算的目的是通过互联网更好地调用、 扩展和管理计算及存储资源和能力,以节省企业的 IT 部署成本,其处理对象是 IT 资源、处理能力和各种应用。而大数据的目的是充分挖掘海量数据中的信息, 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 2 发现数据中的价值,其处理对象是各种数据。可以说,大数据为云计算提供了 很有价值的用武之地。 因此,云计算和大数据的有机结合很有意义,这将发挥二者最大的优势。 云计算能为大数据提供弹性而又强大的存储和计算能力,更加迅速的获得海量 数据中的潜在价值;而来自大数据的业务需求,能为云计算的落地找到更多的 实际应用。 众多的大数据处理工具中,使用最为广泛的是 Apache Hadoop。它是一款开 源的分布式计算平台,目前已经成为管理规模化大数据的准标准平台。借助简 单编程模型,Hadoop 能够轻松处理整个计算机集群的庞大数据集,而将 Hadoop 集群迁移部署到云上运行,用户不仅可以在短短几分钟内启动一个 Hadoop 集群, 而且可以根据数据规模来轻松增加或减少集群的规模。另一方面,用户可以更 专注于数据分析而不是平台搭建,同时云计算的动态伸缩性也可以帮助用户达 到节省资源和能耗的目的。因此研究 Hadoop 集群在云端的自动化部署是一项很 有实际价值的研究内容。 1.21.2 现有现有 HadoopHadoop 自动部署工具介绍自动部署工具介绍 很多云服务商都开始提供基于 Hadoop 分布式计算平台的大数据分析服务, 目前最流行的有亚马逊,微软和阿里巴巴等公司。下面本文将分别介绍这三家 公司提供的大数据分析服务,并分析这种服务模式的优缺点。 1.2.11.2.1 亚马逊亚马逊 ElasticElastic MapReduceMapReduce Amazon Elastic MapReduce (Amazon EMR) 是一种 Web 服务,让用户能够 轻松快速地处理大量数据。 Amazon EMR 基于 Hadoop 开源分布式计算平台,将数据分布在可重新调整大 小的 Amazon EC2 实例集群中并进行处理。Amazon EMR 可用于各种应用程序中, 包括日志分析、Web 索引、数据仓库、机器学习、财务分析、科学模拟和生物 信息学。客户每年启动使用数百万的 Amazon EMR 集群。 Amazon EMR 可以迅 速、轻松地预配置所需的容量,并随时添加或移除容量。在处理要求不确定或 者不能预料的情况下,这将非常有用。例如,如果处理大多数发生在夜间,那 么,白天可能需要 100 个实例,而夜间则可能需要 500 个实例。另一种情况是, 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 3 可能在短期内需要巨大的计算资源。借助于 Amazon EMR,用户可以迅速地预 配置数百或者数千个实例,并在工作完成后随时关闭,避免为空闲的容量付费。 1.2.21.2.2 微软微软 AzureAzure HDInsightHDInsight HDInsight 是 Microsoft 所提供的基于 Hadoop 的服务,它将 100% 的 Apache Hadoop 解决方案引入到云中。HDInsight 是一个基于云的现代数据平 台,可管理任何类型(无论是结构化还是非结构化)、任何规模的数据,可利 用它获得大型数据的完全价值。 借助 HDInsight,用户可以通过 Microsoft 的现代数据平台无缝地处理所 有类型的数据,该数据平台简单且易于管理,可提供完全在云中运行的、开放 式企业级 Hadoop 服务。由于与 Microsoft 数据平台相集成,因此,可以使用 PowerPivot、Power View 和其他 Microsoft BI 工具来分析 Hadoop 数据。 1.2.31.2.3 阿里阿里 OpenOpen DataData ProcessingProcessing ServiceService 开放数据处理服务(Open Data Processing Service, 简称 ODPS)是基于 飞天分布式平台,由阿里云自主研发的海量数据离线处理服务。 ODPS 以 Restful API 的形式提供针对 PB 级别数据的、实时性要求不高的批量处理能力, 主要应用于数据分析与统计、数据挖掘、商业智能等领域。阿里金融、淘宝指 数、数据魔方等阿里巴巴关键数据业务的离线处理作业都运行在 ODPS 上。 1.2.41.2.4 小结小结 前 3 小节主要讨论了目前最流行的云服务商们提供的大数据解决方案。对 于很多中小企业来说,它们可以把数据迁入到云中,从而减少服务器的投入成 本和维护成本,而且可以大大提高系统的安全性和可靠性。另一方面,云服务 商提供的大数据处理服务降低了大数据平台的技术难度,显著提高了运算性能, 使得企业可以对大数据进行更深度的挖掘,提供给企业核心应用软件更精准的 数据,从而产生更高级的增值应用,让企业更有效的提高管理和降低费用。 1.2.51.2.5 现有解决方案的不足现有解决方案的不足 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 4 目前,大多数云服务提供商都意识到了大数据处理服务的重要性并提出了 相应的解决方案。 它们一般都是基于自家的公有云和 Hadoop 开源分布式计算 平台来为用户提供大数据分析服务。这种方案存在的问题在于: 企业需要将数据导入到云服务商提供的公有云当中。当数据规模特别大 时,这是很耗费时间和带宽资源的,很有可能得不偿失。花费在数据 传输上的时间和金钱成本会让企业对大数据服务望而却步。 企业数据存储在公有云中,数据的私密性无法得到保证。这对很多企业 来说是无法接受的。尤其是那些国有企业,它们的数据是其核心,可 能会涉及到国家安全等各个方面。数据的私密性对于这种企业来说相 当重要。因此使用基于公有云提供的大数据服务是行不通的。 服务质量不受企业自身控制。整个大数据分析服务基于一个遥远的数据 中心,服务质量可能会受到网络等因素的影响。 因此,针对上文提出的基于公有云的大数据分析服务的问题,本文实现了 一个基于云的 Hadoop 自动部署工具。利用本工具,企业可以很方便地在自家的 私有云当中提供大数据分析服务,从而带来下面这些优势: 数据传输快捷:数据本来就存储在企业的数据中心当中,企业可以采用 磁盘拷贝或磁盘直接挂载等方式实现数据的快速传输。 数据私密性可以保证:私有云部署在企业数据中心的防火墙内,因而可 以提供对数据私密性最有效的控制。 服务质量稳定:私有云一般在防火墙之后,所以当公司员工访问那些基 于私有云的应用时,是不会受到网络不稳定的影响。 下文将会详细介绍基于云的 Hadoop 自动部署工具。 1.31.3 本文工作和结构本文工作和结构 1.3.11.3.1 本文主要工作本文主要工作 本文的主要工作包括: 1. 介绍研究背景,分析目前基于公有云的大数据分析服务的不足。 2. 介绍了燕云云计算平台,MapReduce 编程模型和最新的 Hadoop 分布式 计算平台。 3. 设计并实现了基于云平台的 Hadoop 自动部署工具。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 5 4. 在北京大学软件研究所自主研发的燕云云计算平台中对 Hadoop 自动部 署工具进行了实例验证。讨论了基于虚拟机的 Hadoop 集群的性能瓶颈 并提出了相应的解决方案。 1.3.21.3.2 本文结构本文结构 本文的组织如下: 第二章介绍基于云的 Hadoop 自动部署工具所需要的相关技术,分析解决方 案采用这些技术的必要性和可行性。 第三章讨论和分析基于云平台的 Hadoop 自动部署工具的设计架构,并介绍 了相关实现细节。 第四章基于燕云云计算平台进行了测试和验证,并对实验结果进行了讨论 分析。 最后,第五章对全文的工作进行回顾总结,提出下一步的工作构想。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 6 第第二二章章 基基于于云云的的 H HA AD DO OO OP P自自动动部部署署工工具具相相关关技技术术 2 2. .1 1 燕燕云云云云管管理理系系统统 燕云是由北京大学软件研究所系统软件研究室自主研发的云计算平台,利 用先进的云计算技术,将虚拟化数据中心资源转变为弹性云计算环境,帮助企 业快速构建公共、私有和混合基础架构云服务(IaaS),为用户提供自服务门 户,实现按需获取计算、网络和存储资源,管理大量的异构虚拟化资源。同时, 燕云系统提供开放的 API 接口,为用户提供安全、可扩展的基础架构云。 通过燕云云计算平台,用户不仅可以方便地申请到所需要的计算资源,而 且可以灵活的定制所拥有的资源,如用户拥有虚拟机的操作权限,可以根据需 要定制操作系统,安装所需的软件。它的一个显著特点就是用户可以根据需要 灵活的申请或者终止资源的使用。 图图 2-1 与其他云平台相比,燕云主要有 3 大优势: 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 7 高度安全:全中文界面,高度友好,同时可提供出色的安全性,可确保 多租户环境中的用户不会影响其他用户获得的服务质量。通过可屏蔽恶 意网络流量的策略,可以有效防止外部安全威胁。 完美兼容主流异构平台:燕云平台支持业界主流的虚拟机管理程序,存 储无关性和存储技术协议的广泛支持,使客户有完全的自由来选择合适 的基础设施组件,而不会受限于单一的供应商。 秒级快速部署:创建虚机更快速,每创建一台虚机耗时 510 秒,远远 领先于同类产品所需的 310 分钟;同时,在平台部署的便捷方面也有 出色表现。 燕云构建的基础架构云服务,使数据中心管理人员可以快速、简单地在现 有基础架构上构建和交付按需申请的弹性云服务。燕云用户可充分利用云计算 来提高效率,实现无限的可扩展性,并快速地为最终用户交付基础架构资源。 2 2. .2 2 M MA AP PR RE ED DU UC CE E编编程程模模型型及及 H HA AD DO OO OP P介介绍绍 2 2. .2 2. .1 1 M MA AP PR RE ED DU UC CE E编编程程模模型型介介绍绍 MapReduce是Google于2004年提出的能并发处理海量数据的并行编程模型, 同时也是一种高效的任务调度模型。MapReduce的最大优势在于屏蔽底层实现细 节, 有效降低并行编程难度, 提高编程效率。开发人员只需将精力放在应用程 序本身, 而关于集群的处理问题, 比如数据分块、资源分配调度、负载平衡、 容错处理、节点通信等则交由平台来处理。 “Map”,“Reduce”的概念和主要思想,都是从函数式编程语言和矢量编 程语言借鉴而来的。Map函数负责分块数据的处理,Reduce函数负责对分块数据 处 理的中间结果进行归约。 MapReduce其实就是Divide/Conquer的过程, 通过把 问题Divide,使这些Divide后的Map运算高度并行,再将Map 后的结果进行Reduce, 得到最终的结果,如图2-1所示。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 8 图图 2-2 正是由于 MapReduce 有函数式和矢量编程语言的共性,使得这种编程模式 特别适合于海量数据的搜索、挖掘、分析和机器智能学习等。MapReduce 可以 处理TB 和PB 量级的数据,并在处理TB 级别以上海量数据的业务上有着明显的 优势。 2 2. .2 2. .2 2 H HA AD DO OO OP P概概述述 Hadoop 是 Google 云计算技术的开源实现,主要用于处理大规模非结构化数 据。它的核心是 Hadoop 分布式文件系统 HDFS 和分布式编程框架 MapReduce。HDFS 具有高容错性和高扩展性等优点,允许用户将 Hadoop 部署在 价格低廉的服务器上,形成分布式系统;MapReduce 分布式编程模型允许用户 在不了解分布式系统底层细节的情况下开发并行应用程序。因此通过 Hadoop 可 以轻松地组织计算机资源,搭建自己的分布式计算平台,完成海量数据的处理。 2.2.32.2.3 HadoopHadoop HDFSHDFS 介介绍绍 HDFS(Hadoop Distributed File System) 是管理网络中跨多台计算机存储 的文件系统。HDFS 是一个高度容错性和可扩展性的系统,适合部署在廉价的普 通商业机器上。HDFS 的设计理念如下: 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 9 1. 存储超大文件。 2. 流式数据访问。HDFS 是建立在最有效的数据处理模式是一次写多次读 (write-once,read-many-times)的模式的概念之上的,HDFS 存储的 数据集作为 hadoop 的分析对象。在数据集生成后,长时间在此数据集 上进行各种分析。每次分析都将设计该数据集的大部分数据甚至全部数 据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重 要。(流式读取最小化了硬盘的寻址开销,只需要寻址一次,然后就一 直读啊读。硬盘的物理构造导致寻址开销的优化跟不上读取开销。所以 流式读取更加适合硬盘的本身特性。当然大文件的特点也更适合流式读 取。与流数据访问对应的是随机数据访问,它要求定位、查询或修改数 据的延迟较小,比较适合于创建数据后再多次读写的情况,传统关系型 数据库很符合这一点) 3. 让它能运行在普通的硬件之上,即便硬件出现故障,也可以通过容错策 略来保证数据的高可用。 HDFS 中一个文件被分为大小固定的若干个文件块,支持流失数据访问。 HDFS 把 Hadoop 云平台中的节点分成两类:NameNode( 唯一的) 和 DataNode。NameNode 管理文件系统的命名空间,维护着文件系统树及整棵树内 所有的文件和目录。NameNode 也记录着每个文件中各个块所在的数据节点信息, 这些信息会在系统启动时由数据节点重建。DataNode 是文件系统的工作节点, 它们根据需要存储并检索数据块,定期向 NameNode 发送它们所存储的块的列表。 DataNode 用数据块作为最基本的存储单位,默认数据块大小为 64 MB。程序与 NameNode 进行通信,然后从 DataNode 上存取文件。 NameNode 在内存中保存着文件系统中每个文件和目录的引用,但集群规模 扩大时,这便造成了一个瓶颈。于是在 hadoop 2.x 发行版中引入了一个新的概 念:Hadoop Fedoration。它允许集群拥有不止一个 NameNode,这样每个 NameNode 只负责维护文件系统中的一部分,例如一个 NameNode 维护/user 目录, 另一个 NameNode 可以维护/share 目录。 在 Fedoration 中,每个 NameNode 维护两部分信息:1)由 namespace 元 数据组成的 namespace volume;2)包含其负责维护的某一部分文件系统中的 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 10 的所有文件的 block 位置信息的 block pool。namespace volume 各自之间是独 立的,这就意味着 NameNode 之间不用交互,而且某个 NameNode 当机并不影响 其他 NameNode 的正常使用。相对于 namespace volume 而言,Block pool 并不 是分区的,所以 datanodes 需要向集群中的每个 NameNode 注册,并且可能要存 储来自多个 block pool 的数据。 2.2.42.2.4 HadoopHadoop MapReduceV2(Yarn)MapReduceV2(Yarn) 框架简介框架简介 Hadoop 包含了 GFS 的开源实现 HDFS 和 MapReduce 框架的开源实现。目前 MapReduce 已经有了两代。本文首先会介绍第一代的 MapReduce,然后介绍它的 缺陷和 Apache 引进第二代 MapReduce 的原因。 第一代的MapReduce程序的流程及设计思路如图2-2所示。 图图 2-3 1. 首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中 的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上, 需要管理所有 job 失败、重启等操作。 2. TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的 事情主要是监视自己所在机器的资源情况。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 11 3. TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要 把这些信息通过 heartbeat 发送给 JobTracker,JobTracker 会搜集这 些信息以给新提交的 job 分配运行在哪些机器上。上图虚线箭头就是表 示消息的发送 - 接收的过程。 可以看得出原来的 map-reduce 架构是简单明了的,在最初推出的几年,也 得到了众多的成功案例,获得业界广泛的支持和肯定,但随着分布式系统集群 的规模和其工作负荷的增长,原框架的问题逐渐浮出水面,主要的问题集中如 下:MapReduce 也不是万能的, 它的不足主要有5点: 1. JobTracker 是 Map-reduce 的集中处理点,存在单点故障。 2. JobTracker 完成了太多的任务,造成了过多的资源消耗,当 Job 非常多 的时候,会造成很大的内存开销,潜在来说,也增加 JobTracker 失败的 风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点主机的上限。 3. 在 TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于 简单,没有考虑到 cpu 及内存的占用情况,如果两个大内存消耗的 task 被调度到了一块,很容易出现内存溢出。 4. 在 TaskTracker 端,把资源强制划分为 map task slot 和 reduce task slot, 如果当系统中只有 map task 或者只有 reduce task 的时 候,会造成资源的浪费,也就是前面提过的集群资源利用的问题。 5. 从操作的角度来看,现在的 Hadoop MapReduce 框架在有任何重要的或 者不重要的变化 ( 例如 bug 修复,性能提升和特性化 ) 时,都会强制 进行系统级别的升级更新。更糟的是,它不管用户的喜好,强制让分布 式集群系统的每一个用户端同时更新。这些更新会让用户为了验证他们 之前的应用程序是不是适用新的 Hadoop 版本而浪费大量时间。 针对第一代MapReduce(MRv1)的缺点,Apache推出了 MapReduceV2 ,即: Yarn。与MRv1 相比, YARN 不再是一个单纯的离线计算环境, 而是一个通用的 计算框架管理平台, 不仅支持MapReduce,也支持其它流行的计算框架,如: 迭代 计算、流式计算、内存计算、在线计算、实时处理、MPI 等。使用者可以将各 种计算框架移植到YARN 上, 由YARN 进行资源的统一管理和分配, 使各个框架 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 12 共享一个集群, 大大降低运维成本和硬件成本。 Apache YARN 由Resource Manager(RM)和Node Manager(NM)组成. 相较于 MRv1,其最大特点是将JobTracker 的两个主要功能“作业调度/监控”和“资源 管理”进行分拆, 总体上采用双层调度架构, 如图2-3所示。 图图 2-4 RM 由Scheduler和Applications Manager(ASM)组成。Scheduler和NM 协调 完成资源管理的功能, NM负责单个节点的资源管理和监控, 定期将资源使用情 况汇报给RM。运行在YARN 上的任何一个作业(如Hadoop Job 、Spark Job)都是 一个Application Master(AM), Scheduler 根据容量、队列等限制条件, 将系 统中的资源分配给各个正在运行的AM。 YARN 自带了多个资源调度器, 如 FIFO、Capacity Scheduler、Fair Scheduler 等。YARN 对资源进行抽象, 称 之为Container, 它将某个节点上的CPU、内存、磁盘等资源封装在一起。AM只 有获得至少一个Container 后才能启动任务, AM本身也必须运行在一个 Container中。ASM负责管理系统中所有应用程序的AM; 获取第一个Container 用于启动AM;监控AM的运行状态; 在AM失败时对其重启。每个应用程序均会有 一个AM, 与NM 合作, 在合适的容器中运行对应的Task, 并监控这些Task 执行。 事实上,每一个应用的 ApplicationMaster 是一个详细的框架库,它结合 从 ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控任务。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 13 上图中 ResourceManager 支持分层级的应用队列,这些队列享有集群一定 比例的资源。从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不对 应用进行监控和状态跟踪。同样,它也不能重启因应用失败或者硬件错误而运 行失败的任务。 ResourceManager 是基于应用程序对资源的需求进行调度的;每一个应用 程序需要不同类型的资源因此就需要不同的容器。资源包括:内存,CPU,磁盘, 网络等等。可以看出,这同现 Mapreduce 固定类型的资源使用模型有显著区别, 它给集群的使用带来负面的影响。资源管理器提供一个调度策略的插件,它负 责将集群资源分配给多个队列和应用程序。调度插件可以基于现有的能力调度 和公平调度模型。 上图中 NodeManager 是每一台机器框架的代理,是执行应用程序的容器, 监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向调度器汇报。 每一个应用的 ApplicationMaster 的职责有:向调度器索要适当的资源容 器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。 Yarn 框架相对于老的 MapReduce 框架优势如下: 1. 这个设计大大减小了 JobTracker(也就是现在的 ResourceManager)的 资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式 化了,更安全、更优美。 2. 在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以 对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred- site.xml 配置。 3. 对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。 4. 老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的 运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 14 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果 出问题,会将其在其他机器上重启。 5. Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应 该借鉴了 Mesos 的工作,目前是一个框架,仅仅提供 java 虚拟机内存 的隔离 ,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分 开造成集群资源闲置的尴尬情况。 2 2. .2 2. .5 5 H HA AD DO OO OP P一一般般部部署署流流程程 1. 准备多台 linux 系统物理机作为 Hadoop 集群的各个节点。 2. 安装 SUN JDK 并设置环境变量。 3. 修改各台物理机主机名(不能重名)并配置 hosts 文件。 4. 配置 SSH 免密码验证登陆。 5. 各台物理机上准备 Hadoop 软件并配置 Hadoop (主要有 7 个配置文件)。 6. 格式化 HDFS 文件系统。 7. 启动 Hadoop。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 15 第第三三章章 基基于于云云的的 H HA AD DO OO OP P自自动动部部署署工工具具的的设设计计与与实实现现 3.13.1 用况捕获用况捕获 Hadoop 自动部署工具根据用户的输入信息,自动创建或调整 Hadoop 集群, 同时支持用户在线提交作业。系统用况图如下图 3-1 所示。 System 上上上上上 上上Hadoop上上 上上Hadoop上上 上上上上上上 上上上上上上 上上上上 上上上 上上上上上上 上上上上上 上上上上上 上上上上上上上上 上上上上上上上上 上上上上上上 上上上上 图图 3-1 图中用况图描述如下: 用况:新建 Hadoop 集群 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 16 用户输入 Hadoop 相关配置信息,系统自动新建 Hadoop 模板虚拟机,执行 安装流程,创建 Hadoop 集群。 用况:扩展 Hadoop 集群 系统根据用户的需求,动态调整 Hadoop 集群的规模,在计算资源不足时, 允许用户快速的扩大集群规模以便更快的执行任务;在计算资源过剩的时候, 允许用户释放多余的计算资源以便达到节省能耗和资源的目的。 用况:提交任务 用户通过 Web 界面向指定 Hadoop 集群提交任务并执行。 用况:查看任务执行 用户通过 Web 界面查看当前任务执行情况。 用况:上传任务文件 用户通过 Web 界面上传数据文件到 HDFS,以便将来处理。 用况:查看文件 用户通过 Web 界面查看 HDFS 中的数据文件。 3.23.2 HadoopHadoop 自动部署工具的体系架构自动部署工具的体系架构 3.2.13.2.1 体系结构体系结构 Hadoop 自动部署工具采用 CS 架构。前台系统接受用户填写待启动的 Hadoop 集群配置信息,向后台系统发送请求,后台处理逻辑的相关部分将 Hadoop 集群信息全部存储在数据库中,然后根据这些信息启动并配置新的 Hadoop 集群并将相关信息返回给前台界面,最后由前台界面对其进行展示。整 个工具的架构图如图 3-2 所示。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 17 图图 3-2 从图 3-2 可以出来,Hadoop 自动部署工具主要由 Hadoop 资源池、Hadoop 模板库、资源适配、自动部署、大数据服务界面等功能模块构成。下面本文将 依次介绍这些功能的模块的作用。 3.2.23.2.2 各模块介绍各模块介绍 HadoopHadoop 模板库模板库 Hadoop 模板库是实现基于云的 Hadoop 自动部署工具的关键模块之一。 通过 Hadoop 模板,可以在已搭建好的虚拟云环境中快速创建 Hadoop 虚拟 机节点,有效节省系统安装时间,并将 Hadoop 分布环境的搭建重点放在 SSH 安全数据传输连接和参数同步上,从而达到在短短几分钟内完成 Hadoop 分布式环境的部署,与传统基于物理机的 Hadoop 分布式环境相比, 基于虚拟机的 Hadoop 分布式环境更快速、更灵活,可以方便快速的实现 Hadoop 集群的动态伸缩。 Hadoop 模板主要制作过程如下: 1. 安装 linux 操作系统 通过燕云 Web 界面通过指定 ISO 来启动虚拟机,并完成系统安装过 程。 2. 安装 Hadoop 软件包 下载最新 Hadoop 软件包,并将其解压到指定位置。另外需要配置 Sun JDK。 北京大学本科学位论文 基于云平台的 Hadoop 自动部署工具实 现 18 3. 安装心跳服务包 Hadoop 新建虚拟机完毕后,大数据服务引擎需要到相应的虚拟机节 点执行集群参数同步等等任务。另外,在集群动态伸缩的时候,大 数据服务引擎也需要知道相应的虚拟机是否启动完毕。燕云并没有 提供这样的机制,因此需要通过模板来实现这样的机制。为此,本 文编写了一个心跳服务包的程序,这个程序在虚拟机完毕后会自动 执行,定时地向大数据服务引擎所在的节点发送心跳信息,信息中 包括 Ip 地址,时间戳等信息。当大数据服务引擎第一次收到相应 虚拟机的心跳信息时,它就知道了该虚拟机启动成功。当 Hadoop 集群运行时,大数据服务引擎发现自己很久没有收到相应节点的心 跳信息,它就知道该节点出现了问题,应该向系统管理员汇报相应 的问题。 HadoopHadoop 资源池资源池 Hadoop 资源池主要是为了提高系统性能设计的。对于用户释放掉的 Hadoop 虚拟机计算节点,并不是直接将其彻底删除掉,而是放入系统维护 的 Hadoop 资源池中,暂时保留一定时间。如果用户发现自己所属的 Hadoop 集群计算资源不足需要动态扩展其大小时,用户通过 web 界面向系 统提出申请。此时,系统并不是直接通过模板创建一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论