基于Hadoop校园信息交流和资源共享平台的建设研究
2019-12-16常香玉王丽红黄俊平
常香玉 王丽红 黄俊平
摘要:从教育部《教育信息化2.0行动计划》要求出发,依托大数据、云计算和物联网等先进技术,针对校内资源短缺、资源利用率低下等问题,设计开发了校园信息交流和资源共享平台,并在云服务器上进行部署,提供校园内实时信息的发布、校园动态了解和资源共享,从而为师生提供方便。
关键词:信息交流;资源共享;Hadoop
中图分类号:TP311.1 文献标识码:A
文章编号:1009-3044(2019)29-0233-02
1背景
教育部在2018年4月印发《教育信息化2.0行动计划》,行动指出要以云计算、人工智能、大数据、物联网等新兴技术为基础,依托各类智能设备及网络进行信息资源建设,向师生提供全方位和个性化的信息化服务。
但是在当今高校内还存在着信息资源分配不均,资源利用率低等诸多问题。本文意在通过建立一个校园内的信息交流和资源共享的平台,实现校园内各院系师生交流讨论、学校组织发布公告、校外商家发布招聘等的平台,提高校内凝聚力,加快公告发布速度。进而丰富校内师生的校园生活,加快校园事务的散布执行速度,提高校园政策的发布质量。最大限度地调动校内师生的学习积极性和工作积极性,拉近师生之间的关系,共同打造一个完美的校园平台。
2平台建设的主要技术载体
2.1大数据
Hadoop是大数据开发的重要框架,核心是HDFS(分布式文件系统)和MapReduce(并行计算模型),分布式文件系统高效地完成大规模数据集的存储,MapReduce为海量数据提供计算。大数据分析的统计任务有Hive组件完成,应用HBase分布式数据库实现文件的高速写入和读取。HDFS与MapReduce的结合使得Hadoop变得更加强大。
2.2云计算
“云”实质上就是一个网络,狭义上讲,云计算就是提供一种资源的网络,使用者可以随时获取“云”上的资源;广义上讲,云计算是信息技术、软件、互联网相关的一种服务,这种计算资源共享池叫作“云”。云计算的基础是一个庞大的数据信息资源池,其最为突出的特点就是能够在非常短的时间内,完成海量数据的处理。云计算作为一种全新的网络概念,其核心是可以将很多的计算机资源协调在一起,使用户通过网络就可以获取到无限的资源,同时获取的资源不受时间和空间的限制。
2.3物联网
物联网是一种将虚拟世界与物理世界连接在一起的低功耗广域网,是在互联网基础上延伸和扩展的将各种信息传感设备与互联网结合起来而形成的一个巨大网络。其基本特征可概括为整体感知、可靠传输和智能处理。物联网是新一代信息技术的重要组成部分,其核心和基础仍然是互联网,是在互联网基础上延伸和扩展到了物品与物品之间,进行信息交换和通信,实现对物品的智能化识别、定位、跟踪、监控和管理。
3基于Hadoop的校园信息交流和资源共享平台设计
3.1总体架构
基于Ha(100p的校园信息交流和资源共享平台按照逻辑分层的方法划分为以下4层分别是“数据层”、“系统层”、“网络层”和“应用层”。
数据层:利用HDFS根据数据特点和具体业务需求将数据分类存储,并进行分布式处理,完成大型数据的各种需求分析,业务功能被识别后被分解成相应的任务。中间件通过相应参数对应用层具体需求做出判断,并根据判决结果决定把任务如何处理。
系统层:校园信息交流和资源共享平台包括操作系统及各类子系统,硬件平台包括中心服务器及终端分布式设备。它连通和支撑其他各层,是整个信息交流和资源共享平台的软硬件载体。
网络层:该层为校园各类信息及资源的传输和覆盖提供支撑。它包括用户与平台联系的有线和无线网络;为人、物定位的位置网络;支撑各类传感器数据传输的物联网络等等。
应用层:将数据处理层得到的数据用相关图或表进行表示,通过业务规则和管理流程向用户提供交互服务,同时也可提供开放的应用系统开发环境。
3.2平台开发实现
平台包括登录功能,提问模块、回答模块、私信模块等。
登录模块功能首先在DAO层设定UserDAO接口,用来存放与数据库用户表交互的SQL语句,及其对应的方法。然后在Service层设置调用UserDAO方法及书写控制逻辑,如注册时生成salt、密码加密、生成随机头像路径,登录时设置登录状态,生成身份标识等。最后在Controller层的LoginContmller设置登录、注册响应路径,设置拦截器,设置注册登录的异步队列处理方法。
提问模块功能首先在DAO层设定QuestionDAO接口,用来存放与数据库问题表交互的SQL语句,及其对应的方法。然后在Service层设置调用QuestionDAO方法及书写控制逻辑,如在提问时对问题标题及内容做敏感词过滤,对问题答案进行排序,生成问题的用户关注列表,问题回答的赞踩统计等功能。最后在Controller层的QuestionController设置提问,问题详情页等的响应路径及赞踩、关注等功能的调用。
实现回答模块功能首先在DAO层设定CommentDAO接口,用来存放与数据库评论表(由于回答可以看作对问题的评论,和对回答的评论类似,所以这里把回答模块和评论模块作为一个模块)交互的SQL语句,及其对应的方法。然后在Ser-vice层设置调用CommentDAO方法及书写控制逻辑,如显示回答数,设置、显示赞踩数等。最后在Controller层的Comment-Controller设置回答的响应路径及对回答内容进行敏感词过滤等功能的调用。
实现私信模块功能首先在DAO層设定MessageDAO接口,用来存放与数据库私信表交互的SQL语句,及其对应的方法。然后在Service层设置调用MessageDAO方法及书写控制逻辑,如发送私信,获取对话列表,获取未读私信数,对阅读完的私信进行清零等。最后在Controller层的MessageController设置私信的列表展示页面、对话列表页面、发送私信页的路径设置,及对MessageService的方法的调用处理。
3.3平台细节设计
1)敏感词过滤
为了打造一个“干净”“和谐”的校园网站,过滤掉那些不堪人目的词汇是一项很有必要的工作,所以在该项目中,每一个有文字发表的过程都会有一次敏感词过滤。本人采用的敏感词过滤算法是使用“前缀树”实现的。
2)Redis的使用
Redis的高速、强有效性在本人的项目中起到一个很重要的作用。例如为了及时响应用户的关注列表,Reds能够快速地完成操作。并且在使用Set这个数据结构之后,十分方便快捷地响应用户的“赞”“踩”操作,在私信模块中也发挥重大作用。而在做异步队列的操作时,Reds的参与也加强了程序的有效性,保证了程序运行时的流畅性。
3)异步处理
由于服务器的处理能力有限,在某一时刻可能会有大量的用户请求发生,此时若无有效的处理算法,则会发生严重的接口堵塞,甚至宕机。为了防止此类事件的发生,在平台设计中书写了一个异步架构。所有的请求会发送到优先队列中存储,然后处理程序会不断地从请求队列中取出请求处理。
4)消息发送模式
因为不同用户在线状态不同,不同用户的粉丝数不同,不同问题的被关注数不同,所以对于不同的主体,消息的发送模式应该有所区分,以充分发挥服务器的性能,提高用户体验。本项目采用的消息发送模式是:对于活跃的、在线的用户采用推送消息的模式,这样新产生的事件能够及时被这类用户看到;对于其他用户则采用拉取消息的模式,在这类用户不上线的时候,与他们相关的事件会晚些触发,这样节省下来的性能可以用来提高在线用户、活跃用户的用户体验。
5)全文搜索
作为一个信息集成的网站,搜索功能是必不可少的,这里使用的是Solr来作为平台的搜索引擎。但是Solr只有英文的分词,所以这里需要自定义中文的分词。首先要创建中文分词器,这里创建了索引时候的分词器和查询时候的分词器,并将Solr自带的分词分析程序导入到配置中。然后在配置中加入mysql的配置、数据配置、导数据库数据的iar包,重启并导人索引,最后设置一些细节配置如关键词高亮等就可以使用了。
4结束语
基于Hadoop的校园信息交流和资源共享平台,借助于现今比较成熟的云计算虚拟服务器,构建了一个供校内各院系师生交流讨论、学校组织发布公告、校外商家发布招聘等的平台,提高校内凝聚力,加快公告发布速度。進而丰富校内师生的校园生活,加快校园事务的散布执行速度,提高校园政策的发布质量。打造了一个信息多元化、管理高效化、可快速搭建起来的实时信息交流和资源共享的平台。