时间:2024-07-28
□周国军,吴庆军
(1,2.玉林师范学院 数学与信息科学学院,广西 玉林 537000)
使用VirtualBox和Hadoop搭建云计算虚拟实验平台
□周国军1,吴庆军2
(1,2.玉林师范学院 数学与信息科学学院,广西 玉林 537000)
本文从节约实验成本的角度出发,探讨了在设备不足的情况下搭建云计算实验平台的问题. 介绍了一种在单机环境下使用VirtualBox和Hadoop搭建云计算虚拟实验平台的方法,并给出了详细的实现步骤. 对搭建好的虚拟实验平台进行了测试,测试结果表明该实验平台在充分利用现有资源的前提下,能满足云计算相关课程实验教学的基本要求.
VirtualBox;Hadoop;云计算;虚拟实验平台
云计算(Cloud Computing)是一种商业计算模型,它将计算任务分布在大量计算机构成的资源池上,使用户能够按需获取计算能力、存储空间和信息服务[1].云计算系统按照服务层次可以分为三类:提供基础设施服务(IaaS)的系统、提供平台服务(PaaS)的系统和提供软件服务(SaaS)的系统[2].
随着移动互联网和云计算的快速发展,云计算领域需要更多的专业人才.为了满足市场的需求,目前国内一些高校的计算机专业已经开设了云计算课程.可以相信,将会有越来越多高校的计算机相关专业开设云计算课程.为了保证云计算课程教学的质量,就需要建设或完善云计算实验室,尽快在现有的运算资源上构建云计算的实验环境[3].
在生产环境下,云计算平台搭建在大规模的分布式集群上,而实验教学使用的设备往往不多而且配置较低.就目前而言,在大多数高校的计算机实验室里,一名学生只能使用一台机器上机实验.如何在设备不足的情况下搭建云计算实验平台?本文对这个问题进行探讨,介绍一种在单机环境下使用VirtualBox和Hadoop搭建云计算虚拟实验平台的方法,从而解决了因实验设备不足而无法开展云计算课程实验教学的问题.
虚拟机(Virtual Machine)是使用虚拟化技术在物理计算机上模拟出来的逻辑计算机,虚拟机拥有独立的操作系统和应用程序[4].使用虚拟机软件可以在一个宿主机上创建几个虚拟机, 因此,可以在单机环境下模拟小规模的分布式集群,进而在虚拟集群上搭建云计算实验平台,既节约了实验成本,又达到了实验的目的[5].
VirtualBox是一款开源的虚拟机软件,现在由Oracle公司开发维护.VirtualBox具有优异的性能和丰富的特性,可以运行在Windows、 Linux、Macintosh等操作系统上,在教育培训、软件开发与测试等领域都得到了广泛的应用.
Hadoop[6]是Apache软件基金会的一个开源分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序.企业和个人都可以使用Hadoop构建PaaS层次的云计算平台.Hadoop的核心是HDFS分布式文件系统、MapReduce分布式并行计算框架和HBase分布式数据库,它们分别是Google云计算最核心技术GFS、MapReduce和Bigtable的开源实现.因为Hadoop具有高可靠性、高扩展性和高容错性等优点,已经在Yahoo! 、Facebook、百度、淘宝等公司的集群上成功部署和运行,取得了非常突出的成绩[7].
Hadoop软件更新很快,可供用户选择的版本非常多,本文的实验平台基于Hadoop 1.x(第一代Hadoop)搭建.在Hadoop 1.x的软件体系结构中,HDFS系统和MapReduce框架都采用了主/从(master/ slave)结构.在主节点上运行NameNode、Secondary NameNode和JobTracker守护进程,在从节点上运行DataNode和TaskTracker守护进程.这些守护进程在集群中承担了不同的任务,其中,NameNode位于HDFS的主端,负责存储和管理HDFS 文件系统的元数据、指导从端的DataNode 执行底层的I/O操作.Secondary NameNode是一个用于监测HDFS系统运行状态的辅助守护进程,根据配置的时间间隔保存HDFS元数据的备份.DataNode位于HDFS的从端,负责将HDFS的数据块读取或写入到本地文件系统的实际文件中.JobTracker运行在MapReduce的主节点上,负责将MapReduce作业分配给TaskTracker执行,并监测作业的整个执行过程.TaskTracker运行在MapReduce的从节点上,负责执行JobTracker 分配的任务.
在实验环境下,通常在主节点上同时运行NameNode、Secondary NameNode和JobTracker守护进程,在从节点上同时运行DataNode和TaskTracker守护进程.一个典型的Hadoop集群采用的拓扑图如图1所示.
图1 一个典型Hadoop集群的拓扑图
图1一个典型Hadoop集群的拓扑图
3.1 相关的准备工作及说明
(1)安装宿主机
在宿主机上安装Linux系统和Vritual Box软件.虽然可以在宿主机上安装Windows或其他系统,但是考虑到目前很多高校的计算机实验室的设备配置较低[8],为了充分利用现有资源,在宿主机上安装Linux系统就有了明显的优点.这是因为安装了Linux系统的宿主机可以用作Hadoop虚拟集群的一台服务器,这就减少了一个虚拟机,从而能更好地在配置较低的计算机上完成虚拟实验平台的搭建.VirtualBox安装包可以从Oracle公司的网站下载(https://www.virtualbox.org/wiki/Linux_Downloads),本文的实验使用的VirtualBox软件版本是4.3.6.
(2)创建虚拟机
使用VirtualBox创建两个或更多的虚拟机,然后分别在虚拟机上安装Linux系统.为了使宿主机与虚拟机、虚拟机与虚拟机之间能够相互访问,需要对虚拟机的网络连接方式进行设置.虚拟机的网络连接方式可以选择网络地址转换(NAT)或桥接网卡,本文的实验选择桥接网卡的连接方式.设置方法如下:在VirtualBox管理器中单击“设置(S)”按钮,在“设置”对话框中单击“网络”标签,将网卡1的连接方式设为桥接网卡.
(3)规划宿主机和虚拟机在Hadoop虚拟集群中的角色
分别给宿主机和虚拟机命名并设置IP地址.服务器在Hadoop集群中的角色是由运行在该服务器上的守护进程定义的,本文的实验创建了两个虚拟机,宿主机和虚拟机的主机名、IP地址及其服务器角色如表1所示.
表1 主机的IP地址及其角色分配表
在配置Hadoop集群时,一般使用主机名表示服务器,而不是直接使用IP地址.这就需要在所有服务器上编辑文件“/etc/hosts”,给出集群中的主机名与IP地址的对应关系,使服务器都能互相解析对方的主机名.在本文的实验中,文件“/etc/hosts”的内容如下:
(4)在宿主机和虚拟机上安装Java
运行Hadoop需要Java 6或更高版本,可以从Oracle公司的网站下载JDK(http://www.oracle.com/ technetwork/java/javase/downloads/index.html),本文的实验使用的JDK版本是1.7.0_51.为了方便对Hadoop进行配置,通常把相同版本的JDK安装到宿主机和虚拟机的相同目录下,具体的安装过程如下:在usr/lib/目录下建立jvm目录,把下载的JDK软件包解压到jvm目录下,命令如下:
在文件“/etc/profile”中设置Java环境变量,添加以下内容:
3.2 搭建虚拟实验平台的基本步骤
(1)创建Hadoop虚拟集群的公共帐号
分别在宿主机和虚拟机上创建一个用于管理Hadoop虚拟集群的相同帐号,以区分本机上的其他服务和辅助SSH(Secure Shell)密钥分布[9].本文的实验创建的公共账号为hadoop,为了方便安装软件,可以把该用户加入sudo组,命令如下:
(2)安装与配置SSH
Hadoop使用了无口令的SSH协议,允许Hadoop用户无需输入密码即可登录集群内的所有机器.安装与配置SSH的过程如下:
使用安装包管理工具逐一在宿主机和虚拟机上安装了SSH,命令如下:
在宿主机上生成SSH公钥/私钥对,并将公钥添加到授权密钥列表文件“~/.ssh/ authorized_keys”中,命令如下:
逐一将宿主机的公钥文件“.ssh/id_rsa.pub”复制到所有的虚拟机上,并将公钥设置为虚拟机的授权密钥,添加到虚拟机的授权密钥列表文件“.ssh/authorized_keys”中.以虚拟机1为例,命令如下:
在宿主机上逐一使用SSH登录到虚拟机,并确认虚拟机对宿主机的授权.以虚拟机1为例,命令如下:
(3)安装与配置Hadoop虚拟集群
为了较快地完成Hadoop虚拟集群的安装与配置,可以采用如下方法:首先在宿主机上安装和配置Hadoop,然后将宿主机上配置好的整个Hadoop目录复制到所有的虚拟机上.在宿主机上安装与配置Hadoop的具体过程如下:
从Hadoop的官方网站(http://hadoop.apache.org)下载Hadoop软件包,本文的实验使用的Hadoop版本是1.2.1.把下载的软件包解压到Hadoop用户的home目录,命令如下:
接下来,编辑安装目录的“conf ”子目录下的6个配置文件,最基本的配置项及其说明如下:
在配置文件“hadoop-env.sh”中定义环境变量JAVA_HOME,使之指向Java的安装目录,内容如下:
在配置文件“core-site.xml”中指定NameNode服务器的主机名及端口号,内容如下:
在配置文件“hdfs-site.xml”中指定HDFS备份的副本数,默认的副本数为3.由于本文的实验只创建了2个虚拟机,所以将副本数设置为2,内容如下:
在配置文件“mapred-site.xml ”中指定JobTracker服务器的主机名及端口号,内容如下:
在配置文件“masters”中指定Secondary NameNode服务器的主机名,内容如下:
在配置文件“slaves”中指定DataNode和TaskTracker服务器的主机名,内容如下:
在虚拟机上安装与配置Hadoop的具体过程如下:首先,将宿主机上安装与配置好的整个Hadoop目录压缩,逐一将压缩包复制到所有的虚拟机上.然后,在虚拟机上将压缩包解压到Hadoop用户的根目录.以虚拟机1为例,安装与配置Hadoop的命令如下:
(4)启动Hadoop
首先在宿主机上格式化Hadoop的文件系统HDFS,然后启动Hadoop的守护进程,命令如下:
说明:可以使用“jps”命令查看守护进程是否已经启动,如果所有的守护进程都已经启动,则说明虚拟集群已经搭建成功.
3.3 虚拟实验平台测试
作者对搭建好的云计算虚拟实验平台进行了测试,计算机的配置是Intel Core2 Duo CPU(主频为3.00GHz)、2GB内存、320GB硬盘,操作系统是32位的Ubuntu 12.04 LTS.
测试的过程如下:首先,准备3个文本文件file1.txt、file2.txt和file3.txt,其中file1.txt为10KB,file2.txt为100MB,file3.txt为1GB.接下来,使用Hadoop的示例程序wordcount统计文件中单词出现的次数,对每个文件运行wordcount程序3次.最后,使用Web界面(http://hdpmaster:50030)查看程序运行的时间,将运行时间取平均值(舍去小数),得到的结果如表2所示.
表2 wordcount程序运行时间表
测试结果表明:该实验平台不但能对小数据进行较快的存储和处理,而且能对较大的数据(1GB)进行存储和处理,达到了使用云计算处理大规模计算问题的基本目标,能满足云计算相关课程实验教学的基本要求.可见,本文介绍的搭建云计算虚拟实验平台的方法是可行的.
随着云计算的快速发展,将会有越来越多高校开设云计算相关课程.本文从节约实验成本的角度出发,探讨了在设备不足、设备配置较低的情况下搭建云计算实验平台的问题,介绍了一种在单机环境下使用VirtualBox和Hadoop搭建云计算虚拟实验平台的方法.采用本文方法搭建的实验平台可以直接运行MapReduce应用程序,并且平台的体系结构具有很好的扩展性,能够充分利用现有资源.利用该实验平台可以开展数据存储与管理、MapReduce编程模型、虚拟化技术、云计算平台搭建与维护等实验,能满足云计算相关课程实验教学的基本要求. ■
[1]Armbrust M,Fox A,Griffith R,et al. Above the Clouds: A Berkeley View of Cloud Computing[R/OL]. UC Berkeley,RAD Laboratory, 2009 [2014-02-16].http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/ EECS-2009-28.html.
[2]张建勋,古志民,郑超.云计算研究进展综述[J].计算机应用研究,2010,27(2):429-433.
[3]李红.云计算带给高校计算机专业教学的思考[J].鞍山师范学院学报,2012,14(6):57-63.
[4]何增颖,陈建锐.基于虚拟技术的计算机实验教学[J].实验技术与管理,2012,29(1):79-82.
[5]张岩,郭松,赵国海.基于Hadoop的云计算试验平台搭建研究[J].沈阳师范大学学报:自然科学版,2013,31(1):85-89.
[6]ApacheHadoop[EB/OL].TheApacheSoftwareFoundation,2014[2014-02-16].http://hadoop.apache.org/.
[7]陆嘉恒.Hadoop实战:第2版[M].北京:机械工业出版社,2012.
[8]肖租秀.基于云计算的计算机实验设备管理平台的研究与应用[J].玉林师范学院学报:自然科学,2013,34(5):133-139.
[9]TomWhite.Hadoop权威指南:第2版[M].周敏奇,王晓玲,金澈清,等译.北京:清华大学出版社,2011.
【责任编辑 谢明俊】
Building Virtual Experiment Platform of Cloud Computing by VirtualBox and Hadoop
ZHOU Guo-jun, WU Qing-jun
( College of Maths & Information Science, Yulin Normal University, Yulin, Guangxi 537000 )
This paper discusses how to build experiment platform of cloud computing under the condition of insufficient devices. From the point of view of saving experimental cost, a method is introduced which uses VirtualBox and Hadoop to build virtual experiment platform of cloud computing with single computer, and detailed implementation steps of the method are given. Performance test for the virtual experiment platform is done, and the test result shows that the experimental platform can meet the basic requirement of experimental teaching of cloud computing courses, and can make full of existing devices.
VirtualBox; Hadoop; cloud computing; virtual experiment platform
TP391.9
A
1004-4671(2014)02-0113-06
2014-02-25
玉林师范学院高等教育教学改革工程立项项目(项目编号:14YJJG10)
周国军(1975~),男,湖南宁远人,硕士,玉林师范学院数学与信息科学学院讲师。研究方向:云计算、数据挖掘。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!