面向开源软件的“云计算”仿真实验设计

2013-12-23 05:40孔艺权
实验技术与管理 2013年2期
关键词:开源云计算密钥

孔艺权

(湛江师范学院信息科学与技术学院,广东湛江 524048)

目前在全国高校实验室工作研究会刊《实验室研究与探索》和《实验技术与管理》发表有关“云计算”在实验教学应用的论文有10多篇。文献[1-2]研究了“云计算”及虚拟化技术特点,提出了利用计算虚拟化技术与“云计算”技术高效地管理计算机与软件实验资源。文献[3-5]基于“云计算”思想设计了虚拟机管理平台,虚拟化计算机实验室,提出了一种基于“云计算”理念的虚拟实验教学系统设计思想,文献[6-8]阐述了“云计算”将对高校教学资源产生的影响,指出“云计算”为高校建设带来的优势及其遇到的问题,基于“云计算”的虚拟实验教学环境,开展基于“云计算”的实验教学改革模式。所发表论文主要研究了“云计算”虚拟化技术,“云计算”在实验资源优化和实验教学方面的应用,给出相应的设计框架;然而如何实现“云计算”模式,具体实现过程没有进一步描述,“云计算”环境到底怎么构建,值得进一步研究。

“云计算”作为一种改变旧有IT 架构的计算模式,被IT 界普遍认为是继大型机、小型机、个人PC、互联网之后又一次信息技术变革。本文在《实验室研究与探索》和《实验技术与管理》中“云计算”实验教学相关研究基础上,开展了面向开源Hadoop平台的“云计算”仿真实验设计,给出“云计算”环境具体实现过程,对每个实现步骤作出详细描述,创建了实验教学中“云计算”仿真环境。

1 开源分布式计算框架

Hadoop[9]是Apache开源组织的一个分布式计算框架,可以在大量廉价的硬件设备组成的集群上运行应用程序,为应用程序提供了一组稳定可靠的接口,构建一个具有高可靠性和良好扩展的分布式系统。Hadoop的核心是HDFS、MapReduce和HBase,分别是“云计算”核心技术GFS、MapReduce和Bigtable的开源实现。HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)是分布式计算的存储基础。HDFS具有高容错性,适合大数据集的应用,并且提供了对数据读写的高吞吐率。MapReduce在大型集群上执行分布式应用,核心思想就是任务的分解与结果的汇总。

本文面向开源Hadoop平台的“云计算”进行仿真实验设计。因为Hadoop 的优势不但在于它的开源,而且Hadoop 的设计根本就是存储和计算的高可扩展性,分布式文件系统的备份恢复机制和MapReduce的任务监控又保证了分布式处理的高可靠性。任何普通的PC 上安装运行Hadoop 框架集群都可用来高效处理海量的信息。实验采用的VirtualBox是甲骨文公司xVM 虚拟化平台技术的一部分,提供在32位或64位的Windows、Solaris及Linux 操作系统上虚拟其他x86的操作系统,与同性质的VMware及Virtual PC比较,VirtualBox独到之处包括远程桌面协定(RDP)、iSCSI及USB的支持,可以满足目前高校实验室普遍性要求。

2 基于开源软件平台“云计算”仿真实验设计

2.1 “云计算”仿真实验网络拓扑

“云计算”仿真实验平台网络拓扑见图1。实验环境中主要以1台Hadoop Master服务器与3台Hadoop Slaves服务器来实现的,其中hdp0当作Hadoop Master,负责NameNode与Job Tracker,而另外3台hdp1—hdp3则当作Hadoop Slaves,负责DataNode 与Task Tracker。Hadoop Master的主要职责就是启动、跟踪和调度各个任务的执行。仿真实验通过开源VirtualBox虚拟主机软件和Hadoop技术来实现,并让其运行复杂的MapReduce计算,进行Hadoop“云计算”仿真。

实验中通过虚拟平台来仿真Hadoop服务器,形成一个小型的“云计算”仿真实验平台,实验需先安装开源VirtualBox虚拟主机软件,然后在其所仿真出来的虚拟主机上安装Linux和Hadoop“云计算”系统。利用Hadoop搭建“云计算”仿真实验平台,系统要装备Java SDK、SSH 安全联机以及rsync远程同步软件,通过运行sudo 以root身份搭配运行apt-get指令[10],自动获得软件组件并安装“云计算”相关软件。为了实现同一个网域内的每台运行Hadoop的服务器都可以互相解析对方的网址以便仿问数据,编辑所有服务器的Linux操作系统的主机设置文档/etc/hosts。“云计算”仿真实验中将计算资源组成IT 资源池,用于动态创建高度虚拟化的资源提供用户使用。分布于网络上的各种高性能计算、服务器、数据库、仪器设备、软件、知识等资源,实验采用了底层结构与上层应用共同设计的方法来完善应用程序的构建,进行资源共享和相关问题的解决[11]。

图1 “云计算”仿真实验网络拓扑图

2.2 配置“云计算”服务密钥安全联机

面向开源Hadoop“云计算”仿真实验平台有一个特性就是不管是Master还是Slave主机,其Hadoop系统设置共同SSH[12]密钥。实验中每台服务器主机都有相同的Hadoop 系统设置,设置Hadoop Master主机之后,通过SSH 密钥证书的scp安全复制指令,可以远程登录仿真网络任何一台Hadoop主机,并直接将相同设置分发到其他Hadoop主机上。实验先在Hadoop NameNode的Master主机上,运行SSH 密钥创建指令,创建配置SSH 密钥安全联机:

在仿真实验平台中通过运行ssh hdp0指令免密码直接安全登录hdp0 服务器,在Hadoop Master主机上使用scp 安全复制指令将hdp0 这台Hadoop Master主机所创建的SSH 授权密钥authorized_keys,复制到每一台Hadoop Slave服务器上,先复制文档需要输入其他Slave主机的Hadoop账号与密码,待复制授权密钥文档authorized_keys成功后进行SSH 联机后,Hadoop Master主机就可以完全免输入密码了,和其他Slave主机以SSH 指令安全联机了。

2.3 多节点“云计算”系统的主节点搭建

多节点“云计算”系统的主节点搭建过程:先编辑系统Slaves设置文档,将Hadoop的所有服务器(包含主服务器hdp0)全部添加到Slaves次服务器设置文档中,当作DataNode与TaskTracker。当正式启动Hadoop“云计算”系统时,实验平台是采用网页的方式监控各节点的运行状况,因此必须有一个Hadoop“云计算”系统的管理网站,来监管Hadoop“云计算”系统的所有节点主机的NameNode主服务器,这个管理网站设置文档为core-site.xml。要让Hadoop“云计算”系统运行Map 与Reduce程序,还有设置mapred-site.xml文档,专门用来监控Map与Reduce程序的Job-Tracker工作分配状况以及TaskTracker工作运行情况,编辑 Map/Reduce 程序设置文档 mapredsite.xml。

Master主机hdp0上创建放置NameNode和DataNode数据的目录,运行指令如下:

2.4 “云计算”系统从节点部署

部署Hadoop从节点,主要为了让Hadoop“云计算”系统的Master与Slave服务器都拥有统一的设置,当设置完hdp0主服务器后,使用先前已经创建好的各主机间SSH 安全联机机制的scp复制指令,将完整的Hadoop安装目录复制到其他Slave服务器上,这样才能让实验仿真中全部服务器协调运行。主要实验方法运行scp指令:

2.5 初始化Hadoop“云计算”系统

实验测试hadoop namenode–format指令是否运行正确,会看到系统的成功运行消息。如果有任何的错误消息生成,则代表core-site.xml、hdfs-site.xml或mapred-site.xml设置文档错误,依照错误消息的指示更改这相关设置文档。初始化Hadoop文件系统是Hadoop 启动的第一步,每次初始化前,要清空$HADOOP_HOME\tmp 目录下的所有文件,Hadoop初始化时会重新建立NameNoteID,而tmp里还包含上次初始化留下的信息,初始化虽然清空了NameNote的数据,但是保留了DateNote的数据。

3 “云计算”实验仿真结果

3.1 运行“云计算”仿真系统

初始化Hadoop“云计算”系统之后,通过运行start-all.sh系统启动指令,就可以启动运行Hadoop“云计算”系统。运行start-all.sh启动指令后,就会启动NameNode与JobTracker主机hdp0,并开始跟其他的Slave服务器创建联机,同时启动DataNode与Tasktracker功能,并在“$hadoop.0.20.2/logs”目录下生成记录文档,开始正式接受NameNode分配的“云计算”任务。

实验结果可以使用系统IE 浏览器,访问http://hdp0:50070查看NameNode的运行状况以及整个分布式文件系统的状态,浏览分布式文件系统中的文件以及日志等;访问http://hdp0:50030可以查看Job-Tracke的运行状态;访问http://hdp0:50060可以查看TaskTracker的运行状态,实验结果见图2。

图2 查看hadoop“云计算”实验平台运行情况

3.2 进行MapReduce“云计算”测试

实验测试构建好的4节点hadoop“云计算”仿真实验平台是否可以正常运行Map与Reduce工作,采用hadoop程序组件内所提供的WordCount程序,让“云计算”仿真实验平台使用Map/Reduce计算输入文档中每种英文字的出现总次数。

通过bin/hadoop指令指定使用HDFS分布式文档格式筛选这2个文档作为Map/Reduce工作的输入文档;使用hadoop-0.20.2-example.jar内附的wordcount程序开始计算输入文档中每种英文字出现的总次数。当运行wordcount程序时,此时hadoop“云计算”仿真实验平台的NameNode与JobTracker主机hdp0就会发挥功能,将Map/Reduce工作分配给每台DataNodes与TaskTracker服务器,通过网页浏览http://hdp0:50030查看当前“云计算”仿真实验平台正在进行的Map与Reduce工作有哪些以及当前进度,实验结果见图3。

图3 “云计算”实验平台的MapReduce工作状况

待MapReduce工作完成之后,就会在HDFS 分布式文档系统下生成输出文档,可以查看hadoop“云计算”仿真实验平台计算所得到的每种英文字出现的总次数(见图4)。实验结果表明:仿真平台实现了硬件资源的虚拟化管理、调度及应用,并且通过仿真模式为用户提供一个不同操作系统下运行各应用程序的虚拟集群计算环境。

图4 “云计算”仿真HDFS实验分布式文档系统

4 结束语

在VirtualBox虚拟平台和Hadoop 系统集群下,设计并实现了“云计算”仿真实验平台,通过SSH 安全密钥机制,方便搭建和配置Hadoop系统集群,从而方便地实现了“云计算”仿真实验平台。实现“云计算”仿真实验平台后,通过让其运行简单的MapReduce计算即可进行测试工作。平台的构建不仅改进了实验手段,而且还改进和充实了实验内容,同时实验系统的结构具有良好的扩展性,不仅能完成原有的实验内容,还可以加入新的实验,为学生进行“云计算”创新性实验打下良好的基础,同时利用信息技术新手段和新方法,对IT 类专业实验教学进行改革,建立新型的实验教学模式,提高实验教学质量,培养创新型IT 人才[13]。

[1]罗国玮,兰瑞乐.基于云计算的高校科研实验平台构建研究[J].实验技术与管理,2012,29(4):115-117.

[2]柴亚辉,涂春萍,刘觉夫,等.基于云计算的计算机与软件实验资源管理[J].实验室研究与探索,2010,29(10):254-257.

[3]李英壮,廖培腾,孙梦,等.基于云计算的数据中心虚拟机管理平台的设计[J].实验技术与管理,2011,28(5):1-3.

[4]黄晨晖,林泳琴.基于云计算的虚拟化计算机实验室的研究与实现[J],实验室研究与探索,2010,29(11):178-181.

[5]鲁慧民,刘刚.基于云计算理念的虚拟实验教学系统设计探讨[J].实验技术与管理,2012,29(4):334-337.

[6]赵明明,林卫峰,张宏都.高校云计算平台建设的发展趋势[J].实验技术与管理,2011,28(7):117-118.

[7]林瑜华.云计算环境下高校实验教学模式的创新与实践[J].实验室研究与探索,2011,30(8):271-274.

[8]玉芬,郭晓娟.云计算对高校教学资源影响解析[J].实验技术与管理,2010,27(5):111-113.

[9]田秀霞,周耀君,毕忠勤,等.基于Hadoop架构的分布式计算和存储技术及其应用[J].上海电力学院学报,2011(1):2-4.

[10]何世晓.Linux 网络服务配置详解[M].北京:清华大学出版社,2011.

[11]孔艺权.基于语义云实验资源共享平台的研究[J].实验室研究与探索,2012,31(7):216-219.

[12]张丽,梁斌,周淑萍.利用SSH 的密钥对建立安全通道[J].微计算机信息,2006(33):4-6.

[13]孔艺权.师范院校IT 类专业实验教学研究与实践[J].实验技术与管理,2011,28(12):156-158.

猜你喜欢
开源云计算密钥
密码系统中密钥的状态与保护*
五毛钱能买多少头牛
TPM 2.0密钥迁移协议研究
一种对称密钥的密钥管理方法及系统
基于云计算的移动学习平台的设计
实验云:理论教学与实验教学深度融合的助推器
云计算中的存储虚拟化技术应用
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
开源计算机辅助翻译工具研究