基于Hypervisor虚拟化技术的Hadoop云平台管理方案的研究

基于Hypervisor虚拟化技术的Hadoop云平台管理方案的研究

 

摘 要

随着互联网技术的发展,人们每天产生着海量的数据信息。这些数据一般具有多态性、异构性等,如何对这些海量的数据进行存储和处理成为亟待解决的问题。传统的并行处理方式存在硬件成本过高、并行程序编写困难等诸多问题[]此需要有一个新的处理模式和技术来解决如何更有效地充分利用互联网资源、减少开发成本的问题,云计算应运而生。云计算是将虚拟化作为核心技术,通过整合网络中的闲散资源,提供强大的存储和计算能力。Hadoop是一个开源分布式数据处理开发框架,具有可伸缩性、高可靠性、低成本等诸多优点,成为近年来国内流行的云计算开发平台。本文将从云计算与Hadoop的框架研究、虚拟化在云计算中的应用、利用Hypervisor虚拟化技术将多个操作系统或数据库构建成统一操作系统或数据库、在Hadoop中融合虚拟化几个方面进行讨论。

目录

摘 要

1 云计算与Hadoop

1.1云计算概述

1.2典型的云计算管理平台

1.3 Hadoop概述 

1.4 Hadoop框架结构 

2虚拟化与Hypervisor

2.1虚拟化概述

2.2虚拟化分类

2.3云计算中的虚拟化

2.4 Hypervisor概述

3基于Hypervisor构建统一操作系统环境

3.1异构操作系统

3.2多个操作系统转换成一个

3.2.1方案及实现

3.2.2优势

4基于Hypervisor构建统一数据库环境

4.1异构数据库

4.2构建统一数据库环境

4.2.1方案及实现

4.2.2优势

5 虚拟化在Hadoop中的应用实现

5.1方案

5.2 Hadoop集群部署

5.2.1 VMWare vSphere安装配置

5.2.2 安装Linux虚拟机

5.2.3 Hadoop 集群配置

6 总结与展望


1 云计算与Hadoop

1.1云计算概述

云计算是一种进行计算资源分配以及计算资源共享的计算方式,它是本地服务器处理应用程序的替代方法。云计算将大量的计算服务器和其它资源组合在一起,通常以按需、按周期付费的方式提供它们的计算能力[]。云计算服务是一种并行化方式的运算,其概念最原始的出发点,就是通过网络媒介将现在信息化时代中的大数据进行简单化处理。具体来讲,就是把网络作为一种传输工具,这种中间工具传输的是形态转变过后的数据形式或服务。云计算把更多的任务留给了云服务管理人员,而在用户端的网络用户不需要知道服务器的物理位置,他们只要启动应用程序就可以开始工作。这种灵活性是云计算的关键优势,也是它与其他形式如网格计算、效用计算的区别所在。

云计算的主要类别有三种见图1-1,包含基础设施即服务(Iaas)、平台即服务(Paas)、软件即服务(Saas)。

基础即服务(IaaS):云基础架构包括许多硬件和软件,具备云计算的基本特征。基础架构即服务支持用户自助供应计算资源,以运行相关平台和应用[]它处理大量计算资源的发送,包括存储和网络的能力。

平台即服务(PaaS):平台即服务支持用户针对云环境调整传统应用,进而使用编程语言、服务、库和其它开发人员工具开发云感知应用[3]。它通常是应用程序和硬件之间的连接。

软件即服务(SaaS):用户可通过多种设备在云基础架构上运行应用程序。它侧重于交替的应用程序,可以在个人电脑上运行,如果使用软件即服务的云计算,则不需要在计算机上安装和运行不同的软件,减少总成本。

云计算的优势有以下几点:

①资源虚拟化:物理资源被虚拟化为一个庞大的资源池,应用的部署与物理环境无关,云计算通过虚拟平台对资源进行管理和分配,可以更灵活地满足应用的随需扩展,数据备份等操作[1]

即付即用:用户通常可通过交互式网站进行支付就可以使用资源,在没有人工干预情况下,实现计算资源的按需自助供应。

灵活性:通过对虚拟资源池进行集中管理,使其能够兼容不同厂商的硬件产品。因此对硬件的要求不高,仅仅使用低配置设备就能获得高性能的计算能力,计算性能能够超过大型计算机。

动态可扩展:这个特点是以虚拟化为基础的,用户运行不同的任务需要不同的资源和计算能力,云计算系统通过虚拟层对用户的需求进行按需分配。用户可以根据需求快速、透明地扩展或订购资源,可以灵活的将计算资源加入计算中心,增加计算能力。而且用户还可以自动进行调整,并且整个过程对于用户来说是透明的。

高可靠性:云计算采用的是多节点服务,用户的应用和计算分布在不同的物理节点,即使某个节点发生故障,仍然可以通过动态部署新的节点来保证应用和计算的正常进行[1]

优越的硬件管理:对于云服务提供商来说,由于所有使用云服务的计算机都使用相同的硬件,因此它可以非常高效、轻松地管理硬件。

减少用户的资金和运营支出:技术的发展日新月异,为了满足客户需要,必须使用新的技术,这意味着可能要改变物理设施,即需要支出高昂的费用[]。通过使用云计算服务,用户无需再采购物理基础设施就能够以最少的人力和成本启动应用程序的新实例,这使得应用程序提供者能够快速地从失败中恢复、启动开发或测试实例、向客户推出新版本。

 

1.2典型的云计算管理平台

云计算管理平台(Cloud Management Platform ,CMP)是一种集成软件,可以为云环境中运行的工作负载提供出色的服务质量、安全性和可用性[3]。包含自助界面,提供系统映像,启用计量和计费并通过既定策略提供一定程度的工作负载优化的产品。更高级的产品还可以与外部企业管理系统集成,包括服务目录,支持存储和网络资源的配置,允许通过服务管理器进行资源管理并提供高级监控以改善云服务的性能和可用性。

(1)亚马逊云平台

AWS(Amazon Web Services)是亚马逊(Amazon)提供的一个全面的、不断发展的、安全的云服务平台

以Amazon EC2为例,它依靠Xen虚拟化来启动所有实例,支持PV(半虚拟化)、HVM(完全虚拟化)。近期Amazon推出了AWS Firecracker,这是一款由AWS开源的轻量级虚拟化运行环境,分别用于MicroVM的网络与磁盘IO访问,以及MicroVM上的AF_VSOCK套接字与宿主机的AF_NUIX套接字通信,从而实现MicroVM内运行的应用,传递vhost内核代码到宿主机的通信。

(2)谷歌云平台

GCP(Google Cloud Platform)是Google提供的云服务平台它提供一系列模块化云服务。Google云计算基础架构平台,底层的虚拟化技术使用KVM,它们没有采用商业虚拟化方案如VMWare、Hyper-V等,而是采用了基于Linux kernel的开源虚拟机。

Google Cloud Next大会上Google发布了企业级混合云、多云平台 Anthos。它与别的公有云服务不同,这不是一个产品而是一系列产品的品牌名,这些产品包括应用现代化、云迁移、混合云和多云管理等方面。Anthos是以Kubernetes为核心的混合云/多云管理平台。

(3)微软云平台

Microsoft Azure是一个为应用程序提供托管和运行的基于互联网模式的微软云计算平台,这个应用托管式平台完全按照云计算的要求和技术来构建,如资源按需动态分配、弹性扩展、按使用计费等[]Microsoft Azure包括云计算操作系统、云关系型数据库、中间件以及相应的辅助服务,采用基于Hyper-V 中的 Hypervisor 为核心的硬件虚拟化技术降低不同资源之间的耦合度,提供资源的动态分配能力,在操作系统与底层硬件设备之间建立一个能够独立控制、分配底层硬件资源的软件层。通过这种虚拟化方式,Microsoft Azure能够实现计算资源的划分、动态部署以及工作负载的动态迁移等。

1.3 Hadoop概述 

Hadoop 是 Apache 基金会研发的并行计算基础架构。它主要是受谷歌实验室研发的分布式运算框架(MapReduce)和谷歌文件系统(GFS)的启迪,可以认为这是两项技术的一个开源实现。2006年3月份,MapReduce和HDFS引入了 Hadoop 项目,至此Hadoop 项目正式启动。 Hadoop 是一个并行化大量信息处理的软件体系结构。用户完全不用知道并行框架底层的设计环境,就能够研发自己的分布式计算程序,很好的利用了集群能力进行高速地运算和存储,让用户能够方便的处理大量数据信息。进而用户能容易地在 Hadoop集群环境下部署研究众多需求的应用。Hadoop 框架主要包括分布式文件系统(HDFS)和并行化计算模型(MapReduce)两部分。其中 MapReduce 并行编程框架是 Hadoop 集群的核心运算模型,是用于在集群上分布式处理大量信息集的软件架构[]。用户可以通过构建 Hadoop 集群,应用Map 和 Reduce 程序处理和分析海量数据的任务[,,]

在Hadoop集群中,每个服务器都被视为一个节点。一个主节点存储MapReduce的JobTracker或Namenode,其余的节点存储数据块并对这些数据执行本地计算。JobTracker将低延迟、高带宽的计算作业(TaskTracker)定向到本地数据。HDFS的主存储目录Namenode提供了机架感知:系统知道文件存储在工作组中的位置。它将HDFS文件名映射到其组成的数据块,然后将这些数据块进一步映射到数据节点进程[]

Hadoop的优势包括:能够实现海量数据的管理和分布式数据处理,为解决大数据信息处理带来许多方便;允许用户快速编写和测试分布式系统,提高用户开发效率;并且可以自动在计算机之间分配数据和工作,进而利用 CPU内核的底层并行性;不依靠硬件来提供容错和高可用性,而是Hadoop库本身已被设计为在应用程序层检测和处理故障[]可以动态地在集群中添加或删除服务器,并且 Hadoop可以继续运行而不会中断;它是开源的,由于它基于Java编写,因此在所有平台上都兼容。

1.4 Hadoop框架结构 

Hadoop 的核心主要有两层见图1-2,存储层(HDFS)和处理计算层(MapReduce)。

(1) HDFS

Hadoop分布式文件系统(HDFS)基于Google文件系统(GFS),并提供旨在商品硬件上运行的分布式文件系统。

开源的Hadoop分布式文件系统(HDFS)通过跨多个服务器复制数据来实现可靠性采用主从架构模式。在HDFS中有两种节点:一个名字节点(Namenode)和多个数据节点(Datanode)。名字节点负责管理文件系统的命名空间和维护文件系统结构树以及其中的所有文件和索引目录[]。此外,名字节点还会记录每个文件的每个数据块所在数据节点的位置,并且每次启动系统时都会重新建立此信息。客户端用户通过访问名称节点来访问整个文件系统,以获取所需数据在相应数据节点的位置。名字节点在HDFS中非常重要,如果没有名字节点,整个文件系统就无法使用 [1]数据节点提供块存储和查询服务,并且负责处理数据的读写请求。每一个文件块还能够备份多份存放在其他数据节点上,来避免各种异常造成的数据破坏。同时,数据节点利用HDFS系统中的数据结构来记录处理文件的文件块个数,获取存储后的文件块路径,以及数据存储节点的运行状态等重要数据。

(2)MapReduce

MapReduce是为数据中心设计的最流行的并行编程模型之一。它最初是由谷歌提出的,以可靠、容错的方式处理大规模的web搜索应用程序,并被证明是数据中心开发数据挖掘、机器学习和搜索应用程序的一种有效的编程模型。特别是,MapRdeuce可以提高缺乏分布式并行开发经验的初级开发人员的生产力[2]。关于MapReduce实现过程,Client 用户端把任务程序交给 JobTracker,也可以使用 Client 提供的接口查看任务运行状态。JobTracker 负责调度和管理各个 TaskTracker,在各个 TaskTracker 中 MapTask 将 input 迭代解析成 kv 对,临时文件将存储到本地磁盘中分成了各自的区。ReduceTask 则从 Map 处理后的结果中取出数据,进行排序后调用Reduce 函数处理并储存到 HDFS 中去。与此同时,JobTracker 还通过心跳检测技术来监督每个 TaskTracker 是否正常工作。Hadoop 系统的物理布局主要有主服务器Master 与从服务器 Slave 组成。主服务器 Master 包括名字节点 Namenode 与任务监测 JobTracker。Namenode负责管理 HDFS,JobTracker 主要负责启动、调度分布在从服务器中的 TaskTracker 来执行并行运算操作。Slave 服务器包含 Datanode 和 TaskTraeker。Datanode 负责 HDFS 的文件块本地存储和文件块的读写操作;TaskTracker 根据调度信息,结合本地的数据执行Map 和 Reduce 任务[4]

2虚拟化与Hypervisor

2.1虚拟化概述

虚拟化起源于1964年的IBM项目,但是发展比较缓慢。VMWare公司推出x86平台的商用虚拟化软件后,进入了快速发展期,随着AMD、英特尔和微软等互联网巨头的加入,发展已进入了爆发阶段[3]。虚拟化是在现有服务器上创建虚拟环境以运行所需程序的过程,而不会干扰服务器或主机平台向其他用户提供的任何其它服务。虚拟环境可以是单个实例,也可以是许多实例的组合。虚拟化的主要目的是通过对传统计算的改造来管理工作负载,使其具有更高的可伸缩性、效率和经济性。虚拟化可以广泛应用于操作系统虚拟化、网络虚拟化、服务器虚拟化、应用程序虚拟化、存储虚拟化、数据虚拟化等。

虚拟机监视器(Virtual Machine Monitor,VMM)是虚拟化的核心控制系统,是虚拟机与硬件之间的控制和转换系统。虚拟机监视器的主要挑战是对物理平台资源(内存转换和I/O映射)的有效控制。虚拟机是由虚拟机监视器创建和管理的[]

2.2虚拟化分类

(1)服务器虚拟化

服务器虚拟化技术将服务器的物理资源抽象为逻辑资源,并将服务器转换为数台甚至数百个隔离的虚拟服务器。每个小型服务器都可以托管虚拟机,请求硬件的任何进程都将整个服务器群集视为设备。服务器虚拟化很容易使不同的操作系统共享相同的硬件,也很容易在不同的硬件之间移动操作系统。

(2)存储虚拟化

在存储虚拟化中,它将所有存储设备池化为一个存储设备,并将其呈现给主机,因此,存储管理员可以更好地创建或设计逻辑存储单元,从而通过掩盖SAN(存储区域网络)的复杂性来备份、恢复、存档应用程序数据。使用存储虚拟化可以轻松创建共享存储、易于合并掩盖SAN的存储资源、使用虚拟存储,主机的故障不会必然损害数据保护分区而且在存储虚拟化中很容易实现复制和灾难恢复。

(3)网络虚拟化

网络虚拟化通过划分可用通道的带宽来组合网络中可用资源,每个通道不依赖于其它通道,而且可以将每个通道重新分配到特定的设备或服务器[3]。网络虚拟化主要用来对物理网络资源进行抽象并池化,以便于分割或合并资源来满足共享的目的。在网络虚拟化中,可以在同一个物理网络上创建多个子网为资源的灵活调度和动态伸缩提供支撑,并且可以更好的监视和识别数据使用情况以提高交换系统的灵活性和扩展性。由于一个网络的中断不会影响其它网络,因此提高了可靠性,简化设备管理。

(4)数据虚拟化

数据虚拟化使用户可以从不同的物理位置访问相同的数据。由于数据以完全独立于数据结构和数据库系统的抽象层的形式呈现,使用户轻松地操作数据进而减少数据输入和格式化错误。

(5)应用程序虚拟化

应用程序虚拟化是管理软件的一种新方式,它打破了应用程序、操作系统和托管操作系统的硬件之间的联系。应用程序虚拟化使用虚拟软件包来放置应用程序和数据,而无需传统的安装过程[]

2.3云计算中的虚拟化

(1)虚拟化在云计算中的应用

虚拟化是云计算最主要的特点。云计算中的虚拟化通过对底层硬件进行抽象化处理,并在其运行环境中将其隔离为虚拟机,而且在单独的托管环境中借助相关的存储和网络连接性,抽象化计算资源,针对计算、存储和网络资源配置多台虚拟机,物理资源转变为逻辑的可管理资源, 所有的资源都透明地放在云计算平台中进行统一管理,实现资源的自动化分配。

(2)云计算中使用虚拟化的优势

①用户之间的隔离:在一台服务器上创建多个相互隔离的虚拟机,使得一个用户与其他用户隔离,这样就不能获得有关其他用户的数据和使用情况,甚至不能访问其他用户的数据,提高了使用环境的安全性和稳定性。

②资源共享:采用虚拟化技术可以将大型资源分割成多个虚拟资源,从而可以被多个用户使用。因此降低了云计算开支与部署成本,同时使云计算的资源得到更加高效的利用。

③动态资源:重新分配资源(如存储和计算资源)是非常困难的,但如果这些资源被虚拟化后就可以很容易地重新分配。

故障恢复:在执行某些任务时,系统可能会崩溃,以致于会对公司造成损害,虚拟化可以同时在多个设备中执行同一任务,数据可以存储在云中,两个同时工作的服务器即使其中一台服务器崩溃了,客户也可以访问数据。

灵活的数据传输:数据可以传输到虚拟服务器并随时检索,客户无需浪费时间寻找硬盘驱动器来查找数据。

(3)虚拟化在Hadoop中的应用

与其他企业应用程序一样,随着Hadoop的成熟,开发的重点也转移到了虚拟化上。虚拟私有云使用同一虚拟机监控程序上的一组硬件,节点不是单独的服务器,而是由角色或工作角色指定的虚拟资源,因此可以将Hadoop集群合并到更少的物理服务器上。

(4)Hadoop中使用虚拟化的优势

快速部署:要部署集群,Hadoop管理员必须进行复杂的设置和配置过程,在物理部署中,每个节点必须单独配置。通过使用虚拟化技术,管理员可以通过克隆节点来加快初始配置,并且可以很容易地复制vm来扩展集群的大小,而且可以删除有问题的节点,然后从备份映像中恢复。一些虚拟化的Hadoop,还可以完全自动化安装和网络配置。

改进管理和监控:可以利用Hypervisor管理接口简化资源和生命周期管理,一些平台允许管理员设置预配置模板,让用户在自定义环境满足个人需求。

提高资源利用率:物理Hadoop集群经常被用来处理估计峰值容量,但在其它时间没有得到充分利用,另一些应用程序(如NoSQL)也需要自己的专用硬件。利用虚拟化,像CPU和RAM这样的资源分配给Hadoop集群,从而为其他任务释放休息资源,将运行的Hadoop(如MapReduce作业)的vm与运行其他工作负载(如HBase上的Hive查询)的vm放在一起,可以平衡系统的使用。

使用高可用性和容错最小化停机时间:高可用性可以在计划外停机期间保护集群,可以在出现故障或服务没有响应时自动触发故障转移到辅助vm。虚拟化的高可用性解决方案监视主机和vm,以检测硬件和客户操作系统故障。如果检测到服务器停机或网络连接失败,则在没有人工干预的情况下在新主机上重新启动来自失败主机的vm。在操作系统失败的情况下,vm会自动重新启动。在虚拟环境中,容错通过创建一个实时的、最新的辅助虚拟机来提供持续的可用性。虽然容错系统无法检测应用程序是否失败或来宾操作系统是否挂起,但是如果某个vm由于硬件停机或网络丢失而停止,它会触发故障转移过程到辅助vm,这有助于防止数据丢失和减少停机时间。结合高可用性和容错可以为虚拟化的Hadoop集群创建最大的可用性[7]

灵活性:使用虚拟化使Hadoop完全脱离了硬件,可以使用直接连接存储(DAS)、存储连接网络(SAN)或网络连接存储(NAS)。如果一家公司已经投资了非本地存储,他们的Hadoop集群可以战略性地直接使用网络连接设备。Namenode和JobTracker的存储或VMDK文件可以放在SAN上,以获得最大的可靠性,工作节点将数据存储在DAS上,在MAPReduce期间生成的临时数据可以存储在I/O带宽最大化的任何地方。

2.4 Hypervisor概述

Hypervisor是运行在基本物理服务器和操作系统软件层之间的中间层。它允许多个操作系统和应用程序共享硬件,它也可以称为VMM(虚拟机监视器)。管理程序不仅协调对这些硬件资源的访问,而且还保护每个虚拟机。当服务器启动并执行管理程序时,它将加载所有虚拟客户机操作系统。Hypervisor是所有虚拟化技术的核心。Hypervisor有两类见图2-1:Type-1型和Type-2型。

(1)Type-1型(裸机虚拟化)

在Hypervisor虚拟化环境中,部署在物理服务器上的系统称为Host OS(主机操作系统),部署在Hypervisor上的虚拟机操作系统称为Guest OS(来宾操作系统)。Type -1管理程序直接安装在硬件计算资源上,而操作系统安装并运行在Hypervisor上。因为虚拟机监控程序直接运行在主机的物理硬件上,所以它也称为裸机管理程序。而且它直接安装在物理服务器的硬件上,在这两者之间不存在操作系统或任何其他软件层。

Type-1虚拟机管理程序实际上是一个非常基本的操作系统,运行管理程序的物理机只能用于虚拟化,而不能用于其他目的。这些虚拟机管理程序需要一个单独的管理控制台来执行诸如实例创建、迁移等活动。该管理控制台可以基于 Web,也可以是一个单独的软件包,将其安装在另一台计算机上。使用此控制台,可以连接到管理程序来管理虚拟环境操作。Type-1管理程序有VMWare ESXi、Microsoft Hyper-V、Xen Server、 VMWare vSphere等。

Type-1虚拟机管理程序的优势包括:出色的性能,它们不受操作系统随附的固有限制的约束,因此可以提供出色的性能。这就是为什么我们可以在企业设置中找到Type-1虚拟机管理程序的原因之一;高度安全,由于它们直接在物理硬件上运行,而没有任何底层操作系统,因此可以避免操作系统经常出现的缺陷和漏洞。这样可以确保每个vm与任何恶意软件活动都隔离。

 (2)Type-2型(宿主虚拟化)

宿主虚拟化在传统操作系统中安装Hypervisor虚拟化层,虚拟化软件以应用程序进程的形式在主机操作系统中运行。因为Hypervisor运行在物理主机的操作系统上,所以它也称为宿主(托管)管理程序。Hypervisor为其他关键的内核操作(如中断处理、内存管理)提供了hypercall接口,可以进行Hypervisor和来宾操作系统之间的通信,以提高效率和性能。这些管理程序托管在操作系统上,管理程序作为软件在这一层上运行,以实现虚拟化。例如在物理服务器上安装Linux操作系统然后在操作系统上安装Hypervisor,然后部署虚拟机Guest OS后通过Hypervisor来共享资源。Type-2型管理程序有VMWare Workstation Pro 、VMWare Fusion,、Virtuabox等。

Type-2虚拟机管理程序的优势包括:简单的管理,它们本质上充当管理控制台。无需安装单独的软件包即可管理在Type-2型虚拟机管理程序上运行的虚拟机;用于测试,它们便于测试任何新软件或研究项目。用户可以简单地使不同的操作系统运行多个实例,以测试该软件在每种环境中的工作方式。

3基于Hypervisor构建统一操作系统环境

3.1异构操作系统

当前企业中网络环境越来越复杂、应用系统的数量越来越多,操作系统、数据库系统等资源的统一管理问题就显得尤为重要。构建统一操作系统以及数据库环境能够增加系统的安全性,方便用户管理操作系统和数据库,对于信息化整合具有很高的现实意义。

异构操作系统是由多个不同种类的计算平台或应用子系统通过网络连接而成的计算机系统。计算平台是指计算机的硬件系统和操作系统的组合。例如,某一分布式系统由3台微型计算机通过以太网连接而成。所有微型计算机都采用奔腾处理器芯片和IBM微型计算机兼容的硬件体系结构,但用了3种不同的操作系统:1台用Windows95,1台用WindowsNT,1台用Linux,这就是一个异构系统。

3.2多个操作系统转换成一个

3.2.1方案及实现

利用Hypervisor虚拟化技术,机器指令集被Hypervisor通过二进制转换方式转换为主机Host OS机器语言,Guest OS之间通过Hypervisor来分享底层硬件资源。当Guest OS虚拟机发出诸如访问设备驱动之类的授权指令请求时,Hypervisor便会发起对设备驱动访问的跟踪,由于Guest OS 和Host OS间的差异被Hypervisor的转换机制屏蔽,因此要成为Guest OS的操作系统通常无需修改定制便可直接运行在虚拟机中。使用VMWare vSphere,vCenter 通过对虚拟机池的管理间接地实现对物理资源的管理。在物理服务器上创建出的虚拟机可以组成虚拟机池,通过在每一个结点上安装 vServer 系统,然后就可以在这台物理结点上创建虚拟机,再把这些虚拟机根据具体需求组成任意大小规模的虚拟池来达到服务器合并的目的。这样使得管理人员只需与控制结点进行交互。

vCenter的主要功能是管理vServer。只有一台主机安装vCenter,而安装vCenter系统的这台主机位于核心管理位置,并管理其他vServer主机。vServer的主要功能是对共享存储进行划分和管理[]。对主机的物理资源(CPU、内存、I / O)进行虚拟化,同时vServer向vCenter发送心跳数据包,通知vCenter其通信状态是否正常。

 

 

3.2.2优势

大大降低成本:通过将不同类型的操作系统资源整合,减少管理复杂度,明显提高资源利用率,从而降低硬件成本以及降低运营和维护成本。

提高操作效率:大大减少服务器重建和应用程序加载时间。主动规划资源需求,允许快速的硬件维护和升级。

提高系统性能:不同资源被整合成具有巨大能力的系统。

 

4基于Hypervisor构建统一数据库环境

4.1异构数据库

异构数据库系统是多个相关数据库系统的集合,可以实现数据共享和透明访问。每个数据库系统在加入异构数据库系统之前就已经存在,并且有自己的DBMS[]。异构数据库系统的目标是实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享。异构数据库的每个组件都有自己的自治性,在实现数据共享的同时,每个数据库系统仍然保持自己的应用特性、完整性控制和安全性控制。

4.2构建统一数据库环境

4.2.1方案及实现

从多个数据库中收集信息,并创建统一的全局模型。在原有操作系统中安装独立的虚拟操作系统,将不同的数据库安装到相应的虚拟机中,并利用Hypervisor技术一个抽象层,隐藏数据的存储结构,通过数据集成,同时呈现数据,就好像来自单个数据库或系统一样。对统一的存储空间系统进行内容维护,vServer都连接到同一组共享存储设备。存储设备的类型可以是 NFS 存储、CIFS 存储、iSCSI 存储或者 NAS 存储。

 

 

4.2.2优势

集中管理:为数据管理者提供了一个集中统一的数据管理平台。

提高效率:为数据使用者提供了一个简单高效的数据服务平台。

提高安全性:在降低数据使用成本和提高数据使用效率的前提下,提高了数据使用的安全性。

隐藏底层数据源的复杂性:它使来自各种数据库和系统的数据易于集成,同时呈现数据,好像它来自单个数据库或系统一样。

多源数据访问:使不同级别的用户可以轻松地根据自己的需求使用数据。

降低成本:减少了硬件需求,从而降低了运营成本。

5 虚拟化在Hadoop中的应用实现

5.1方案

基于Hypervisor虚拟化技术,在Hadoop云平台上部署虚拟化集群,创建一个主节点master节点和多个子节点slave节点。master节点作为控制端运行JobTracker和Namnode,负责MapReduce任务的分配和调度以及元数据管理。slave节点作为任务执行端运行TaskTracker和Datanode,进行子任务管理以及实际的文件存储[]。使用VMWare vSphere对虚拟机进行管理,它在底层通过Hypervisor虚拟化技术将物理服务器转换成虚拟机,解决了由于异构环境带来的问题。

 

5.2 Hadoop集群部署

部署Hadoop集群需要准备的软件如图:

 

 

5.2.1 VMWare vSphere安装配置

(1)首先安装ESXI 5.1,安装完成后重新启动并进行网络配置。

 

 

(2)安装vCenter Server,其中需要安装组件vCenter Single Sign On、vCenter Inventory Service和vCenter Server,vCenter Single Sign On安装时需要创建数据库,vCenter Server安装时需要创建数据源。

 

 

 

(3)进行vSphere Client安装。vSphere Client只能管理一台ESXI主机,若要同时管理多台ESXI主机,可以使用 vCenter Server,然后使用 vSphere Client 连接到vCenter Server。

 

 

5.2.2 安装Linux虚拟机

(1)使用vSphere Client登录到服务器,然后创建虚拟机。选择要安装的操作系统类型及版本,这里选择Linux centerOS 6,配置虚拟机属性并添加ISO映像文件。

 

 

(2)安装操作系统。

 

 

(3)一台虚拟机安装好后进行克隆其他两台虚拟机,共创建三台虚拟机,一台虚拟机作为Hadoop平台的master节点,其它两台作为slave节点。对虚拟机进行名称、网络等配置,使得相互可以ping通。

 

 

5.2.3 Hadoop 集群配置

(1)安装JDK,将下载好的压缩文件解压安装并配置环境变量。

 

 

(2)设置所有节点SSH免密登录,目的是启动Hadoop时不需要多次输入密码。

 

 

(3)安装Hadoop,将下载好的压缩文件解压安装并配置环境变量。

 

 

(4)配置Hadoop文件完成部署,其中需要修改的文件有四个,分别为core-site.xml配置文件、hdfs-site.xml配置文件、mapred-site.xml配置文件、yarn-site.xml配置文件,配置好主节点后再向2个子节点复制Hadoop配置,并格式化HDFS文件。

 

 

 

 

 

 

 

 

(5)当三个节点都完成配置后启动节点,通过web浏览器进行验证。

 

 

6 总结与展望

利用Hypervisor技术有效屏蔽不同操作系统之间的差异性,进而将操作系统资源构成资源池。使用该技术还可以对不同数据库构建统一数据库环境,方便用户管理。通过对Hadoop平台中使用Hypervisor虚拟化技术的研究,使得Hadoop部署简单,而且可以根据业务需求动态增加数据节点,节约硬件资源,有效降低了成本开销。本文虽然实现了虚拟化与Hadoop的有效融合,但是之后的性能优化还需要进一步深入的研究。

参考文献

[] 曹风兵. 基于Hadoop的云计算模型研究与应用[D]. 重庆:重庆大学,2011.

[] RAO B T, SRIDEVI N V, REDDY V K, et al. Performance issues of heterogeneous Hadoop clusters in cloud computing[J]. Global journal of computer science&technology,2012,32(6):55-63.

[] 虚拟化和云计算-从虚拟化到私有云基础架构即服务的演变过程_图文[EB/OL]. https://www.tceic.com/jl1g786667ki102jk2hj899i.html,2013.

[] Naeem Makhdoom, Mahar Hidayatullah Memon Furqan, Siddique Muhammad, Rauf Abdul. AN OVERVIEW OF VIRTUALIZATION & CLOUD COMPUTING[J]. Science international journal lahore,2016, 28(4),3799-3803.

[] 细数云计算产品和技术-Windows Azure[EB/OL]. https://blog.csdn.net/itboxes/article/details/63266696,2017.

[] 基于hadoop的云架构系统方案[EB/OL]. https://www.docin.com/p-1499223313.html,2016

[] 张新朝. 基于云平台虚拟集群的设计与实现[D]. 福建:闽南师范大学,2015.

[] 陈红. 云计算应用引擎计费机制研究与实现[D]. 长沙: 国防科学技术大学研究生院, 2011.

[] 汪志鸿, 詹舒波. 基于 OpenStack 与 kvm 的云计算平台的构建[OL]. [2012-9-25].

[] Couryney Webster. Hadoop Virtualization[M]. America:O’Reilly Media,2015:10-13.

[] Hadoop Ecosystem(Hadoop生态环境-130多个相关开源项目)[EB/OL]. https://blog.csdn.net/hugowang/article/details/83376562,2018.

[] 晁卫. 基于hadoop平台的混合推荐系统[J]. 电子技术与软件工程, 2014, 000(004):P.107-107.

[] Kumar Rakesh, Charu Shilpi. An Importance of Using Virtualization Technology in Cloud Computing[J]. Global journal of computer science&technology,2015,1(2):56-59.

[] 云管理之虚拟化——虚拟化的分类[EB/OL]. https://blog.51cto.com/dchampion/672952,2011.

[] 王鹏涛. 虚拟化技术在集群中的应用[D]. 西安:西安电子科技大学,2010.

[] 百度百科 异构系统[EB/OL].

[]王伟,陶然. 基于虚拟化技术的Hadoop集群搭建与应用[J]. 软件导刊,2016,15(4):54-58.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嗯呢嗯呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值