基于Hadoop框架下高职微课程的研究与分析

2020-02-22 03:09王珈珞曹前
现代信息科技 2020年18期
关键词:数据流调用分布式

王珈珞 曹前

摘  要:新媒体时代的快速崛起,使微课成为高职院校授课教学过程中的新型教学辅助模式。该文主要分析了Hadoop技术在高职微课体系的应用和深化,重点对数据平台框架中Hadoop分布式文件系统和Red5流媒体相关技术进行了研究和分析。通过微课系统的设计,实现了HDFS Client模块和RTMP Client模块的视频调用,并完成微课视频的海量存储和流媒体式播放方式。最后,结合大数据微课实例对系统的开发进行了分析和研究。

关键词:Hadoop;微课;Hadoop分布式文件系统

中图分类号:TP311       文獻标识码:A 文章编号:2096-4706(2020)18-0140-04

Abstract:With the rapid rise of the new media era,micro-course have become a new teaching aid model in the teaching process of higher vocational colleges. This article mainly analyzes the application and deepening of Hadoop technology in the micro-course system of higher vocational schools,and focuses on the research and analysis of the Hadoop distributed file system(HDFS)and Red5 streaming media related technologies in the data platform framework. Through the design of the micro-course system,the HDFS Client module and the RTMP Client modules video call are realized,and the mass storage and streaming media mode of micro-course videos are completed. Finally,it analyzes and researches the development of the system based on the big data micro-course example.

Keywords:Hadoop;micro-course;HDFS

0  引  言

高职院校的教学形式越来越多,微课就是其中之一,以播放时间短、效率高并能动态展示教学重难点为优势的新型授课方式,它可以是视频、动画等基于网络流媒体的播放形式。当今教学环境下,微课的教学方向和授课、备课方式在一定程度上也反映了老师的授课能力和信息化教学的教学能力。同时,对于促进疫情常态化下高职学生的自主学习具有重要的辅助作用,促进学生学习成果优质体现。

本文介绍了在Hadoop框架下,把Hadoop分布式文件系统(HDFS)实现为具体的微课存储系统,采用Red5作为流媒体的服务器搭建平台,构建成校园微课体系。同时把云计算的运行模式整合为新数据,并完成了对数据的编辑和处理,大大提升了微课系统中数据的有效存储空间以及数据处理的扩展性。

1  相关技术支持

1.1  Hadoop框架

Hadoop框架是大数据分布式的文件系统,它可以将文件进行统一的复制和存储,提高数据的准确性和再编辑能力。Hadoop框架是函数型编程模块,对MapReduce的模型形成数据挖掘,大大提高了数据处理的能力。框架的构成分为查询数据的MapReduce框架和数据生成器预处理器。首先,数据的搭建用RDF/XML初始化格式运算,再将组件N Triple Converter分析后的数据转变成N-Triples组件。最后用文件分割器将大数据库中的分层数据加以切割和分类,最终放入HDFS中。

1.2  云存储的结构模型和配置

在以往的存储结构中,无论是慕课还是微课,伴随着课程的进行系统存储设备产生的数据量不断增加,如果只是单一的加设存储硬件的数量,而对于在存储设备增加过程中出现的单点故障没有相应的解决方法,那么故障点中的海量数据很有可能会永久丢失或不可恢复。为了解决负载平衡和纠错的问题,云存储技术应运而生。

传统存储是为了实现单一存储或环境设计的,而对数据的扩展性却没有更多的开发。渐渐地,存储技术由最初的直连存储(Direct Atached Storage,DAS)向网络附加存储(Netwui Attached Storage,NAS)发展,之后发展为存储区域网络(Storage Area Network,SAN),再发展为分布式存储(Ditributed Storage),而今发展到云存储。

云存储的框架结构与传统存储的完全不同,它不是单一的普通存储硬件,而是利用完整的云存储框架的一种数据编辑访问服务。云存储系统的框架模型分为4层,分别是存储层、基础层、接口层和用户访问层,如图1所示。

1.3  HDFS

HDFS是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System),它和传统的分布式文件系统有着很多相同的特点,但它和其他的分布式文件系统的差别也是非常明显的。HDFS是一个容错性很高的文件系统,适合使用在性价比高的机器上,对海量数据的访问也能很好的驾驭,非常适合应用在大规模存储数据集合上。同时,HDFS放宽了一些POSIX约束,来完成流动式访问海量系统数据的目标,数据访问如图2所示。

1.4  数据仓库Hive和实时分布式高维数据库HBase

数据仓库Hive和高维数据库HBase调用数据的方法如下:

(1)访问数据工具Hive,给数据类提供SQL访问功能;

(2)再把数据SQL语句翻译成MapReduce模块调取信息;

(3)当延时响应触发时HBase可以调取分布式存储系统,并加以置换和编辑;

(4)最后将加工后的数据用MapReduce模块进行保存。

1.5  微视频Red5服务器

Red5是常用的Java开发的流媒体服务器,它支持:把音频(MP3)与视频(FLV)自由转换成播放数据流、录制客户端播放流、共享视频对象、现场直播流发送和远程调用数据。Red5使用RTMP、RTMPT、RTMPS和RTMPE作为流媒体的主要传输协议,实现了在线录制,Flash流媒体播放,在线微聊,视频直播等一些基本功能。

2  系统架构设计

2.1  系统框架

微课的系统结构采用混合存储数据方式搭建平台,它提供了一种海量数据存取服务,基于Hadoop环境来实现数据访问和普通文件的配套存储。其主要组成部分是分布式文件系统HDFS,以及Map Reduce分布式计算框架结构。在该集群中首先定义一个主节点充当Name Node,用于元数据的编辑和管理,再将其它若干子节点定义为Datanode,负责存储实际的数据块。为了实现该服务操作,系统框架采用四层结构,分别是:混合存储层、数据管理层、数据接口层和应用层。

(1)混合存储层:这层是由系统硬盘和模拟硬盘组合的,并在分布式构架中给数据节点提供服务空间;数据混合存储利用IDC大数据和资源库数据为基本,通过存算分离,实现数据弹性伸缩;达到数据的完整性和准确性;

(2)数据管理层:这层用于数据空间的分割,为数据的编辑提供平台,在Hadoop环境下的NameNode来负责分配分布式文件的字段空间、后台数据仓库的数据维护和数据配比的可能性;同时,数据管理层也是介于数据和应用之间的介质和桥梁,通常上层自动应用所需的数据会直接由该层调用。对多数用户而言,数据管理层的功能定位是用户和数据管理;

(3)数据转换层:该层的数据由HDFS压缩转变成RTMP指定数据格式;数据转换层的设计相对简单,主要工作是实现框架与数据对象之间的序列化与反序列化。并为应用层提供辅助服务,在调用Web服务代理方法之前,将数据仓库中的对象参数序列化成字符串,在调用之后,将数据转换成反序列化数据对象加以应用;

(4)应用层:应用层包括应用支持子层、应用框架AF、存储设备对象以及设备应用对象,负责平台数据流的汇聚、设备发现、服务发现、安全与鉴权等。每个应用层协议都是为了解决某一类应用问题,而问题的解决又往往是通过位于不同主机中的多个应用进程之间的通信和协同工作来完成的,最后,将最终数据由链路结构应用到系统平台中。

2.2  HDFS-RTMP

HDFS-RTMP是系统结构中重点操作和开发的模块部件,主要分为HDFS Client模块以及RTMP Client模块。该部件都属于链路的逆向结构趋向,分为输入和输出两个步骤,当HDFS Client从Hadoop数据集中调用实时视频流数据时,系统触发HDFS-RTMP部件进行编辑,处理后再输出给RTMP Client。

2.2.1  HDFS Client的调配和实现

在系统需要读取数据文件时,HDFS Client模块利用分布式提取的方式将用HDFS的API接口来保存和调用Hadoop数据。其中,HDFS Client模块里的FileSystem数据流会自动翻译成一个Path文件流,并且对象值会返回一个FSDataInputStream数据信息和模块流,最终HDFS Client模块中的FSDataInputStream数据信息就可以读取出分布式文件的具体内容了。

HDFS Client模块的实现是调用文件数据流信息完成的,首先将HDFS Client模块设置FileSystem的get()方法获取分布式文件DistributedFileSystem,然后fs通过调用open()的打

开设置并读取的文件包里面的有用信息。接着Distributed FileSystem(fs)通过分配RPC调用NameNode节点,用来确定文件起始Block的位置。接着DistributedFile System(fs).open()会返回一个FSDataInputStream对象给Client用来读取数据流中的数据。最后,FSDataInputStream封装了分布式文件输入流(DFSInputStream)用于提供NameNode和DataNode的I/O.client调用对这个输入流调用read()方法。

2.2.2  RTMP Client模块的协议传输

大网络大平台中,RTMP Client模块和系统信号网络连接,这样Red5与RTMP Client模块的基本通信就关联了,然后建立一个网络流,完成各端口之间的输入出视频信号。这样RTMP Client模块就会达成RTMP协议与Red5设置的联系,从而搭建了Red5和RTMP Client模块两者的网络疏通,最后把数据流分配给HDFS Client接收。当有数据播放请求时,系统平台就会发出信号给Red5,反之,直接返回现有网络设置。

Red5完成数据流发送RTMP分配到Red5,主要操作為:

(1)搭建平台中的RTMP Client过程RTMPClientrtmp Client=new RTMP Client(),寻找RTMP Client的connect()方法构建数据流的平衡;

(2)调整rtmpClient.createStream()模块的查询方法构建数据流连接;

(3)调用rtmpClient.publishStreamData()方法发送视频数据。

3  基于Hadoop的微课系统的设计与实现

以计算机网络技术专业的大数据微课系统设计为例,使用HDFS,流媒体服务器使用Red5,流媒体播放器为JW Player,Web应用为ASPNET设计的视频点播系统USTS Micro。

3.1  微课平台构架

硬件环境:采用TP-linkR9302服务器。

配置:CPU使用2.0 GHz 64 Cores128 GB;内存为8× 32 GB 1 200 GB;硬盘采用ESXI8.0。

虚拟机Dell_HDFS_1~Dell_HDFS_9基本配制:CPU4 ×5,内存64 GB。

软件环境:CentOS 7.4,hadoop 3.2.0,Red5 1.0.5,HDFS- RTMP,对应环境配置如表1所示。

3.2  大数据微课设计流程

3.2.1  Hadoop微平台的拓扑结构

我院大数据专业计算机云机房已构建成以拓扑结构为基础的局域网络,所以可以将现有实训室和交换机进行组装搭配,构建Hadoop微课网络教学平台。网络拓扑结构如图3所示。

3.2.2  视频数据源采集

本院微课视频处理包括视频数据采集、视频数据清理和视频数据整合,将终端数据源中的分离数据放入Hadoop平台进行数据编辑。在数据采集中可以利用关系型数据库中的数据导入到HDFS中的Hive中。Hive提供类SQL功能,把类SQL语句翻译成为MapReduce来翻译文件数据流,非结构化的数据则以目录和文件的组织方式存储到HDFS中,具体数据操作如图4所示。微课中的具体视频文件将以授课资源和老师搭建平台为主要核心数据进行操作。

3.2.3  系统调用过程的实现

3.2.3.1  调用数据

在Hadoop分布式系统中可以运用MapReduce模块运算出微课视频框架对数据的转码并对文档进行格式转换处理。将微课中的数据流利用此功能进一步完善数据信息的分布式处理,其实现过程是首先选取系统中Hadoop并安装转码所需的数据组件;接着采用HDFS-RTMP框架来处理文件上传;同时把微课资源进行分段并上传到HDFS;最后配置自定义MapReduce模块,对微课视频资源进行转码、并用。微课系统服务器结构实现如图5所示。

3.2.3.2  开发实现

系统实现的过程中,首先在虚拟机上安装Hadoop,再把其中的一台模拟机DellHDFS_1直接设置为NameNode节点,其余定义为DataNode节点,并且在剩余的8台模拟机DataNode上安装HDFS-RTMP;同时将数据调用服务在Red5上配置完成,最后在平台USTS MOOC上安装调试微课大数据视频开发系统。

其主要步骤是用户提出视频的请求连接播放,系统通过节点对数据进行分析和筛查,接着在大数据视频的数据仓库Hbase中查询指定视频保存的Hadoop节点URL地址,并在查询过程中加以编辑和处理,把视频数据流中的视频通过URL地址分配给HDFS-RTMP。同时,HDFS-RTMP将URL地址从Hadoop数据集中调取视频数据,再用HDFS-RTMP转换视频数据为ETMP数据流并传输给Red5。最后,Red5把RTMP最终数据反馈给用户,并播放视频。其中系统各部件协作工作过程如图6所示。

4  结  论

本文介绍了基于大数据Hadoop微课系统的设计,采用HDFS技术将微课系统中的数据存储起来,并用HDFS-RTMP连接和协调HDFS与Red5数据流节点的走向,来完成分布式存储机制下数据群的分发处理,给数据中心项目的Red5集群搭建方案,同时通过对Hadoop集群的缓冲访问来调取数据仓库的数据,并完成了基于此流程Red5集群的性能测试,通过分析测试数据结果把视频数据流中的视频通过URL地址分配给HDFS-RTMP,最终实现数据的反馈,并播放视频。希望HDFS-RTMP通过进一步的优化设计来均衡分配,从而进一步提升系统的功能。

参考文献:

[1] 王涛,邵国强,邹红,等.“基于Hadoop的大数据分析”课程规划与设计 [J].电脑知识与技术,2015,11(7):190-192.

[2] 吴密.云存储技术在数字图书馆馆藏资源安全存储中的应用研究 [J].河南图书馆学刊,2019,39(9):83-84+87.

[3] 胡铁生.“微课”:区域教育信息资源发展的新趋势 [J].电化教育研究,2011(10):61-65.

[4] 周可,王桦,李春花.云存储技术及其应用 [J].中兴通讯技术,2010,16(4):24-27.

[5] 陈娜,徐歆壹,宋红兵,等.基于Hadoop的电信BSS大数据平台建设研究 [J].电信科学,2013,29(3):36-40+47.

[6] 司雅楠.基于MapReduce的高校大数据分析挖掘 [D].新乡:河南师范大学,2016.

[7] 盧爱芬.基于Hadoop的大数据处理系统分析与研究 [J].现代信息科技,2020,4(2):109-111.

作者简介:王珈珞(1983—),女,汉族,安徽芜湖人,讲师,硕士,研究方向:大数据应用。

猜你喜欢
数据流调用分布式
应用数据流分析排除起动机不转故障的研究
数据流和波形诊断技术在发动机故障诊断中的应用
居民分布式储能系统对电网削峰填谷效果分析
基于Paxos的分布式一致性算法的实现与优化
数据流安全查询技术综述
基于Android Broadcast的短信安全监听系统的设计和实现
利用数据流进行电控故障诊断的案例分析
利用RFC技术实现SAP系统接口通信
C++语言中函数参数传递方式剖析