技术领域
[0001] 本发明涉及一种基于开源技术的云平台大数据系统。
相关背景技术
[0002] 目前,大量正在使用中的信息系统大多是在2000年左右及以后建立,大多采用了单机、多计B/S、C/S结构。那些运行了超过十年的系统普遍面临一个问题:系统访问速度越来越慢,已经到了急需升级的时候。大多数时候,采用的升级方式主要包括:①购买性能更强劲的服务器,提高系统的服务能力;②购买新的应用系统,同时升级硬件。
具体实施方式
[0037] 为让本领域的技术人员更加清晰直观的了解本发明,下面将结合附图,对本发明作进一步的说明。
[0038] 一种基于开源技术的云平台大数据系统,其基础设计平台主要包括计算、存储、网络设备,基础设计平台是云平台的硬件支持系统;通过对基础设施平台的扩展,可进一步提高平台承载能力,同时支持网络设备、负载均衡、异构系统集成的关键技术研究;通过虚拟化技术屏蔽底层的硬件差异,实现对计算和存储、网络和软件、数据和用户的资源的高效部署和管理,为用户使用提供稳定、良好的运行环境。
[0039] Hadoop是一个针对大规模数据处理与分析的用于构建分布式系统的基础框架,它方便易用,用户可以在不必充分关注分布式底层细节的情况下,方便地开发分布式应用,充分利用集群进行协同计算与协同存储,实现横向扩展的目标。HBase则是一个分布式的、面向列的开源数据库,HBase在Hadoop之上利用了Hadoop文件系统(File System)所提供的分布式数据存储。它不同于一般的关系数据库,而是一个适合于非结构化数据存储的数据库。
[0040] 再上层则是我们需要实现的软件应用系统,此应用系统也包含了三个部分:学生信息管理系统、系统门户和客户端,图1所示。
[0041] 系统功能设计在本文中主要以高校学生信息管理系统的学工管理子模块为例。
[0042] 针对普通、职业高等院校学生管理特点,紧密结合现有教务管理信息系统资源,主要面向学工处、院系辅导员、班主任提供包括新生报到管理、学生信息管理、学生就业管理、学生宿舍管理、学生综合测评管理等功能模块。本系统具有高效整合教学资源、功能实用、操作方便等基本特点,为各类普通高校的学生管理工作提供一个高效的管理平台。对我校学工管理信息系统的功能分析,具体的有如下功能:系统信息模块、学工人员管理模块、学生日常管理模块、招生信息管理模块、学生就业管理模块、学生信息管理模块、学生宿舍管理模块、综合测评管理模块、系统维护模块、综合查询分析模块。子系统功能模块结构图如图2。
[0043] 系统关键部分实现服务器运行的操作系统是ubuntu12.04。而Open Stack部署采用的一主机和一虚拟机的集群形式。Hadoop部署在Open Stack云中的三个instance中,构成应用的大数据平台。学生信息管理雄就运行在这个Hadoop台上。主要涉及到以下几个方面:
[0044] 3.1Open Stack平台的部署
[0045] (1)配置网络相关。配置网络参数,正常联网。并依次安装bridge、NTP、Iscsi、rabbitmq服务。其中,Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源同步化,提供高精准度的时间校正。i SCSI技术是IBM公司研究开发的,是一个供硬件设备使用的可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够在诸如高速千兆以太网上进行路由选择。各个组件之间的交互是通过“消息队列”来实现的,在Open Stack中由rabbitmq服务负责。
[0046] (2)安装和配置数据库。安装mysql服务。
[0047] apt-get install-y mysql-server python-mysqldb
[0048] 配置mysql,以便支持从外部访问mysql数据库。
[0049] sed-i′s/127.0.0.1/0.0.0.0/g′/etc/mysql/my.cnf
[0050] 重启服务service mysql restart
[0051] (3)安装和部署身份管理组件keystone。keystone为各个模块提供认证服务,所以各个模块与keystone都有所交互。配置keystone.conf,然后同步数据。并依次创建tenant、用户、Roles(角色)和所需要的服务。再通过命令keystone user-list确认系统安装完成。
[0052] (4)安装和部署镜像管理组件glance。glance服务主要包括两个进程,glance-api和glance-registry,前者提供对glance服务相关的api,后者负责image注册等。安装过程需要配置四个文件glance-api-paste.ini、glance-registry-paste.ini、glance-registry.conf、glance-api.conf,在执行命令glance-man-agedb_sync同步数据库。最后执行命令glance index,查看结果没有任何的输出,就表示安装成功。
[0053] (5)安装和部署控制与计算组件nova。Nova是Open Stack云中的计算组织控制器。支持Open Stack云中实例(instances)生命周期的所有活动都由Nova处理。这样使得Nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。
[0054] (6)安装和部署web管理组件dashboard。dashboard用于提供一个Web前端控制台,以此来展示Open Stack的功能。
[0055] (7)上传和添加ubuntu12.04镜像。
[0056] (8)安装成功,并创建实例,正常运行。其中的server1、server2和server3就是后续Hadoop集群的部署环境。
[0057] 3.2在云中部署Hadoop
[0058] Hadoop完全分布式的安装需要以下几个过程:
[0059] (1)为防止权限不够,三台机器均开启root登录。
[0060] (2)为三台机器分配IP地址及相应的角色。
[0061] (3)对三台机器进行JDK安装并配置环境变量。
[0062] (4)对三台机器进行SSH远程无密码登录安装配置。
[0063] (5)进行Hadoop集群完全分布式的安装配置。
[0064] (6)部署完Hadoop后,安装HBASE数据库。安装成功后,可通过浏览器查看。
[0065] 系统实现关键代码:
[0066] 本系统实现中最关键的是和分布式数据库HBASE的交互。
[0067] 对HBASE数据库关键操作如下:
[0068] (1)通用数据操作配置
[0069] HBase客户端API中对HBase的任何操作都需要首先创建HBase Configuration类的实例。Configuration类中的配置参数都是来自于Hadoop的配置文件中,而这些配置文件在Configuration类中被当做一个个资源(Resource),每个资源都包含了一组以XML格式存在的name/value对,这些资源每一个都是单独的XML文件,在代码中直接加载。
[0070] HBase Configuration conf=new HBase Configuration();
[0071] conf.add Resource(new Path("conf/core-site.xml"));
[0072] conf.add Resource(new Path("conf/hdfs-site.xml"));
[0073] conf.add Resource(new Path("conf/mapred-site.xml"));
[0074] conf.add Resource(new Path("conf/hbase-site.xml"));
[0075] String tablename="stu Info";//指定表格名
[0076] HBase Admin admin=new HBase Admin(conf);
[0077] (2)添加/修改数据
[0078] HTable table=new HTable(conf,tablename);//制定要操作的表[0079] table.set Auto Flush(true);
[0080] Put p=new Put(String.format("row%06d",101).get Bytes());
[0081] p.add("第一列值".get Bytes(),"第二列值".get Bytes(),"第三列值".get Bytes());
[0082] table.put(p);//执行
[0083] (3)删除数据
[0084] //删除记录
[0085] List list new Array List();
[0086] Delete d1=new Delete("待删除记录".get Bytes());
[0087] list1.add(d1);
[0088] table.delete(list);//执行删除
[0089] (4)查询所有数据
[0090] Result Scanner rs=table.get Scanner(new Scan());
[0091] for(Result r:rs)//遍历表格记录
[0092] {
[0093] for(Key Value key Value:r.raw())
[0094] {
[0095] ......
[0096] //对记录进行处理
[0097] }
[0098] }。
[0099] 结论:本发明阐述了基于开源云计算、大数据技术在现有系统改造中的应用。对系统设计和开发过程进行了描述,并且对其中的优缺点进行了分析,有效地解决了累积大量数据导致数据库访问影响整体系统性能的问题,并进行了有益的尝试,也为以后类似问题的解决提供了研究的思路。
[0100] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。