基于虚拟化技术的Hadoop集群搭建与应用

  • 格式:doc
  • 大小:28.00 KB
  • 文档页数:8

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于虚拟化技术的Hadoop集群搭建与应用作者:王伟陶然

来源:《软件导刊》2016年第04期

摘要:Hadoop作为云计算开源项目,已得到工业界和学术界的广泛认可。传统的Hadoop 环境大多基于物理服务器,难以获取足够的实验场地和设备来建立Hadoop实验环境。同时,存在维护和管理代价高、资源浪费严重等问题。基于东华云平台,提出一种在单台物理服务器上运行多台虚拟机来创建虚拟化Hadoop环境的方法,即便只有一台服务器,也可以快速搭建Hadoop环境并进行基础实验,实验证明了该集群的可用性。

关键词关键词:Hadoop;云计算;云平台;虚拟化

中图分类号:TP301 文献标识码:A 文章编号:1672-7800(2016)004-0050-05

0引言

目前,大数据已经成为研究热点,在众多大数据解决方案中,Hadoop成为首选,其为Apache基金会的一个开源项目,已经积累了大量用户,在工业界和学术界得到广泛认可,一些国内外知名IT企业如Google、Amazon、百度和淘宝等,纷纷将Hadoop应用在商业领域,许多高校和研究机构也将Hadoop应用到教学和实验中[1-3]。

传统Hadoop集群基于物理节点搭建而成,虽然从理论上讲,组建一个Hadoop集群不需要购置昂贵的高性能计算机,仅使用廉价计算机即可[4,5],但是对于高校师生来说,如果采用传统技术构建大数据实验环境,将面临以下问题:①集群构建不仅需要大量物理设备,还需要足够的实验场地,而这些资源难以获取;②单操作系统物理服务器的性能大多得不到充分利用;③基于物理机的局域网组建不易实施,当集群中节点不断增加,集线器、交换机等物理设备也要相应增加,网线布置会显得错综复杂,需要有专业的技术人员来组建局域网[6-8]。

虚拟化技术具有众多优势,例如资源复用和迁移技术[9],基于虚拟化的大数据集群可以简化大数据平台的运维过程,提升其资源利用率,避免Hadoop集群带来的成本负担,所以采用虚拟化技术,结合高校云平台,使用云平台的基础设施即服务(InfrastructureasaService,IaaS)、平台即服务(PlatformasaService,PaaS)和软件即服务(SoftwareasaService,SaaS)三层服务架构[10,11],在服务器上运行多台虚拟机,利用虚拟机的快照、克隆等技术,能够快速建立一套Hadoop环境,以满足高校师生研究和实验需求。比如,对于专业人士,可以提供虚拟服务器资源,而对于普通师生,只要提供某个已建集群的访问权限即可,从而大大节省了硬件成本,方便管理和维护。

1相关工作

Google提出的MapReduce编程模型近年来受到业界广泛关注并得到飞速发展,Hadoop则是MapReduce的开源实现,目前已经得到了许多大公司的支持,比如Yahoo、Facebook、Twitter等大数据公司都在使用Hadoop处理海量数据[12,13]。Hadoop系统架构及执行流程图如图1所示。

图1中,主节点Master作为控制端,运行作业管理器JobTracker和命名管理器NameNode,JobTracker负责MapReduce任务的分配和调度,NameNode则是Hadoop分布式文件系统HDFS的元数据管理器。节点Slave作为任务执行端,运行任务管理器TaskTracker和数据管理器DataNode,TaskTracker负责管理和运行所分配的子任务,DataNode存储实际的文件块并处理相应的读写请求。用户通过作业客户端JobClient提交一个由配置文件和应用程序代码组成的作业包后,JobTracker会对这个作业包进行以下处理:划分(Split)、映射(Map)、重分发(Shuffle)和规约(Reduce),最终输出结果(Output)至指定路径。

上世纪60年代,虚拟化技术诞生,最初被使用在IBM大型机上,后来被越来越多地部署到基于X86架构的PC服务器上。虚拟化技术是云计算的基础,云计算则是一个虚拟化的计算资源池,云计算中使用虚拟化技术解决的是大规模的虚拟化资源管理问题,将虚拟化技术应用到云计算环境中是一个非常值得研究并极具挑战的课题[9,14-16]。

石允剑[17]在Hadoop平台下实现了基于云计算技术的高校招生管理系统,但是这里的Hadoop平台是基于四台普通服务器的,一旦业务需求增加,则需要相应地增加物理服务器数量。王业平[18]使用一台笔记本电脑作为Master节点主机,三台台式机电脑作为Slave节点主机,搭建了一个实验用的Hadoop集群环境,进行了小规模关联数据的存储与查询实验,但是文中提出的服务架构和实施方案没有在更大规模的计算机集群中进行验证,如果需要对研究进行客观真实的评价,则必然要扩大实验集群的规模,因此依然存在物理机集群扩展不方便的问题。

林常航[19]和陶永才[20]指出,现有Hadoop集群在异构环境下效率低下,为了优化MapReduce在异构环境下的性能,两位分别提出一种基于节点计算能力的数据分配策略和一种自动数据分配策略。其中,自动数据分配策略基于资源性能和任务特征,能够自动确定节点任务槽数,并且为每个节点动态确定不同的数据分配量。上述两篇文献研究的重点在于提高MapReduce执行效率,均基于异构资源环境,如果以单服务器为基础部署虚拟机集群,且集群中的节点均通过克隆方式创建,则整个集群就是基于同构环境,避免了大规模集群中机器性能相差较大带来的资源异构问题。

为了提高大数据集群的可用性,满足高校师生对大数据实验环境的不同要求,本文采用虚拟化技术,结合东华云[21],在单服务器上运行多台虚拟机,利用虚拟机的快照、克隆等技术,建立一套可用于研究和实验的Hadoop环境,节省了硬件成本,方便管理和维护。

2基于虚拟化的Hadoop集群搭建

2.1东华云

东华云采用VMWare的vSphere和Citrix的Xen虚拟化技术,目前已经实现了服务器虚拟化、桌面虚拟化和应用程序虚拟化,其中服务器虚拟化已被应用到实验室日常管理中。东华云平台以免费虚拟化软件VmwareESXi为基础[22],其软件环境如表1所示。

2.2虚拟机集群创建

虚拟机集群创建在云平台上,在大数据集群配置的虚拟机环境中,单机配置为:处理器类型Intel(R)Xeon(R)双核E5620@2.40GHz;内存容量4GB。Hadoop环境为由4台与单机配置相同的服务器组成的同构资源环境。在集群中的所有服务器上都运行CentOSrelease6.3(Final)操作系统,并安装配置Hadoop-1.2.1。图3、图4分别为云平台上创建的虚拟机集群及其结构图。

2.3Hadoop安装与配置

Hadoop安装与配置步骤为:①配置虚拟机集群中所有机器的hosts文件,记录本机集群中所有机器的IP和对应的主机名,每行记录形式如:192.168.7.167test.master;②下载Hadoop和JAVA-JDK压缩包,并解压,同时配置环境变量;③完成master节点和所有slave所有节点的SSH免密码登录;④安装Hadoop时,除了需要解压Hadoop,配置其环境变量外,还要为Hadoop创建一个临时文件夹,同时需要对conf文件夹中的一些文件作自定义修改;⑤重启环境变量文件使其生效:#source/etc/profile;⑥启动Hadoop前,要进行格式化操作,在master 节点中执行:#hadoopnamenode–format;⑦启动Hadoop集群所有节点:#start-all.sh。

2.4集群验证

用jps命令验证是否所有节点Hadoop都已经启动成功,若成功,master节点和slave节点提示信息分别如图5和6所示。

同样,Hadoop提供通过web端查看集群启动情况,打开浏览器后,在地址栏中输入以下网址:http://Master-IP:IP-Port。其中Master-IP是master节点的静态IP,而IP-Port是Hadoop开放的端口号,为50030或50070。

3基于虚拟化技术的Hadoop集群实验

3.1动态增加节点实验

至此,一个基于云平台的Hadoop集群已经搭建好,其拥有1个master节点,3个slave节点,共计4个节点。通过动态添加节点的实验来验证虚拟化Hadoop集群的可用性。具体实验步骤如下: