谭忠理
(广州开发区政府投资建设项目管理中心)
云计算是互联网产业发展20年后新的变革,在互联网基础设施及应用方面比较成熟,人们的生活数字化程度不断加强,互联网形成的架构和模式无法支撑网络需求快速增长的背景下,IT产业开始走向云计算时代。2012年我国政府工作报告对云计算做了如下定义:云计算是基于互联网服务的增加、使用和交付模式,涉及通过互联网来提供动态易扩展且经常是虚拟化的资源,是传统计算机和网络技术发展融合的产物,它意味着计算能力也可作为一种商品通过互联网进行流通。
1.2.1 从硬件推动到网络推动
纵观信息产业,可以发现硬件技术和网络技术是推动其发展的主要力量,如图1所示。硬件驱动的时代诞生了IBM、微软、Intel等企业。随着网络的发展,网络通信带宽逐步加大,逐渐成为推动信息产业发展的主导力量,随之诞生了百度、谷歌、亚马逊等企业。直到云计算的出现才标志着网络已成为信息产业发展的主要驱动力,此时技术的变革即将出现。
1.2.2 计算技术向云计算、大数据演进
在硬件推动向网络推动转变的过程中,计算技术还呈现出以下的发展趋势。
1)从面向计算到面向数据的发展过程。
2)从以硬件为核心到以网络为核心。
3)从集中到分散再到集中。
计算技术向云计算、大数据的发展过程如图2所示。
云计算是我国IT产业发展的战略性机遇,国家高度重视、积极引导云计算产业的发展。2012年3月,在国务院政府工作报告中,云计算被作为重要附录给出了一个政府官方的解释,在此之前云计算已经作为国家重点支持发展的战略性新兴产业,列入《中华人民共和国国民经济和社会发展第十二个五年规划纲要》。
作为我国重点发展的战略性新兴产业,云计算、大数据成为各地政府大力支持的产业,云计算企业和相关产品出现持续性快速增长。下面对云计算、大数据及数据中心方向的国家自然科学基金项目进行分析与研究。2009年-2013年3个方向的立项数据如图3所示。
与其他新兴学科类似,云计算、大数据作为一个新兴的技术方向在早期教学、科研中遇到很多亟待解决的问题,比如,在教学领域会面临无教材、无教师、无实验设备的“三无”窘境,同时专业如何设置、课程如何组建、老师教什么、学生如何学、实验做什么;在科研领域,研究方向如何确立、科研设备如何设计等问题。
1)教学实训基础功能。满足计算机、电子等相关专业的公共基础课程的教学需求,既能完成常规课程的一对多教学实训任务,又能完成相关课程的单机实验任务。
2)基于虚拟化的教学实训专业功能。虚拟化作为云计算系统的重要特征,是需要实现的重要目标之一,为基于虚拟化的应用和研究提供平台,实现虚拟机的快速部署。
3)基于集群的教学实训专业功能。满足并行计算、云计算、大数据等方向课程的教学实训功能,建立云计算大数据教学集群环境,搭建、配置典型的集群系统。
4)支持720个云终端桌面,可取代720个PC电脑,可满足计算机系、电子系等专业的实训内容。
5)支持主流分布式存储系统(Gluster、Mfs)的规划、设计、搭建、使用调试、故障维护及开发。
2.2.1 一体化原则
集广播教学、单机实验、虚拟化实验、集群实验、高性能计算等多种功能于一体,能向不同用户同时提供多种教学、实验硬件方案服务。
2.2.2 高密度原则
采用高密度服务器,构建硬件集群,实现教学实训平台,使平台具备足够的物理节点,同时实现较高性价比。
2.2.3 多平台原则
在一套硬件平台上实现多个云计算大数据软件系统,搭建多种类型的云计算、大数据集群环境,实现多平台共存。
为了在一套平台上实现以上的功能目标,本文采用云终端+高密度集群的方案构建平台,使用KVM将集群资源进行虚拟化,虚拟出众多的虚拟机,构成规模更大的集群用户。
由于本教学实训平台既要满足虚拟化的要求,又要满足集群计算的实验要求,因此本文采用胖节点+刀片机的架构。
实验系统平台结构如图4所示。
在以上的虚拟化平台上分配虚拟机,部署MPI,HPCC,Hadoop,Storm平台,构建大数据集群实验系统。
硬件稳定性及散热性测试的项目、方法及结果等如表1、表2所示。
表1 硬件稳定性测试内容
表2 散热性测试内容
在浏览器地址栏输入IP地址,出现登录虚拟机管理节点的登录界面。输入账号、密码,可正常登录虚拟机管理系统。在此界面中设置虚拟机的参数信息,选择Linux操作系统,进入虚拟机的参数设置界面。
1)运行EWB5.0。测试结果表明,在本平台上可以正常运行EWB 5.0。
2)运行Keil。测试结果表明,在本平台上可以正常运行Keil。
3)运行Modelsim 10.1a。测试结果表明,在本平台上可以正常运行Modelsim 10.1a。
采取以下步骤搭建MPI并行开发环境。
1)获取3台安装有Linux系统的虚拟机。
2)保证每个节点的sshd服务(Secure Shell)能正常启动(root权限)。
3)永久关闭每个节点的防火墙(root权限),避免MPI不能访问网络造成程序执行出错。
4)为每个节点分配IP地址(root权限)。
5)修改机器名(root权限)。
6)配置/etc/hosts文件(root权限)。
7) 挂载NFS文件系统。
8)配置ssh实现MPI节点间用户的无密码访问。
9)安装MPICH2。
1)配置Hadoop环境
2)配置ssh实现Hadoop结点间用户的无密码访问。
Hadoop需要进行信息传递,所以需要达到结点间的无密码访问,这和利用MPI实现并行程序是一样的,否则系统会周而复始地请求密码验证。
3) JDK的安装配置
Hadoop是采用Java编写的,所以需要安装java的JDK。
4)安装配置
(1)解压Hadoop,并将其置于用户的主目录/root下。
(2) Hadoop配置文件的修改。
(3)格式化Namenode(格式化Namenode是运行Hadoop之前的必须步骤),执行Hadoop的bin文件夹中的格式化命令。
(4) Hadoop的运行和停止,运行Hadoop的bin目录下的start-all.sh,启动和停止Hadoop。
(5)测试Hadoop。
5)在Hadoop环境下实现WordCount
(1)启动Hadoop服务。
(2) Hadoop创建Hadoop分布式文件系统输入目录。
(3)把本地目录下的文件上传到Hadoop的分布式文件系统的输入目录。
(4)运行WordCount 列子。
(5)查看程序运行结果。
4.3.1 安装准备工作
1)分配4个虚拟节点,安装64位CentOS系统,若系统为32位的,则使用的 JDK也需要32位。
2)将4个虚拟机的IP地址设置为192.168.122.101~192.168.122.104。
3)安装Storm所需的依赖软件:Python,JDK,gcc-c++,libtool,libuuid,libuuid-devel。
4)安装下列工具包:Zookeeper,Zermq,JZMQ,Storm,Maven。
4.3.2 安装步骤
1)安装依赖文件:安装JDK,设置环境变量,打开/etc/profile,使用指令“java –version”查看安装是否成功。
2)安装Zookeeper:对ZOOKEEPER_HOME和ZOOKEEPER_HOME/bin进行设置,新建目录/tmp/zookeeper和/var/log/zookeeper存放临时文件。
3)安装Storm:编辑配置文件,在文件最下方添加Storm的配置信息。4.3.3 设置Storm
1)在各个节点上注意设置zookeeper,在/usr/local/zookeeper/conf/zoo.cfg文件末尾加上以下代码:
2)将/usr/local/storm/conf/storm.yaml文件中的storm.zookeeper.servers下面的内容替换为192.168.122.101~192.168.122.104。将nimbus.hosts设置为192.168.122.101。
4.3.4 启动Storm
1)主节点(192.168.122.101)上执行:
2)在子节点(192.168.122.102~192.168.122.104)上执行:
现在检测是否安装成功,通过浏览器输入192.168.122.101:8080查看,成功后就可以启动实例进行测试。
4.4.1 准备工作
配置ssh无密码访问,这步工作在配置MPI开发环境时已经配置完成。
4.4.2 安装工作
1)在安装HPCC的过程中,需要在每个节点上安装HPCC。
HPCC的安装文件分为插件版和不带插件版,其官方网站提供了两种安装文件的下载包。其中,插件版提供了Java、Python等语言的支持。两种版本的安装指令有所不同。
2)启动HPCC系统服务。
3)检查启动的HPCC服务情况。
4)停止HPCC服务。安装成功后,HPCC会将文件安装到默认的路径。
4.4.3 配置集群环境
1) 停止HPCC系统服务。在启动HPCC集群配置服务前,需要首先停止全部节点上的HPCC服务。
2)启动配置服务,启动之后用户可以通过Web界面接口启动集群环境配置。
3)通过浏览器登录集群,进行集群配置,登录8015端口即可进入集群环境配置界面。
4)创建自己的集群配置文件。
5)集群网络配置。填写集群的网络地址信息,配置文件根据此处填写的IP地址信息将Thor集群和Roxie集群分配到各个节点。
6)配置Thor集群和Roxie集群的节点数。
7)用新生成的配置文件替换原始的配置文件。
8)重新启动集群。
4.4.4 在HPCC环境下进行数据处理
在HPCC平台上对固定长度的数据集进行变换,数据格式如表3所示。
表3 数据格式
云计算、大数据产业的发展催生了市场对人才的需求。计算和数据是信息产业发展的两大主题,云计算、大数据的核心技术紧紧围绕这两大主题。虚拟化技术和集群计算技术是云计算、大数据相关专业必须掌握的技术。
高校在开设云计算、大数据专业课程的时候往往缺乏教学实训的实验平台,并且缺乏教学实训方案。
本文围绕云计算与大数据的核心特点,设计实现了一套适合教学实训的云计算、大数据硬件实验平台。平台采用瘦终端+集群的硬件解决方案,并在此硬件平台上构建虚拟化平台,以满足普通的教学实验,构建虚拟化实验环境;同时,在此基础上构建多种集群计算环境,以满足大数据和高性能计算教学实训的要求。