APP下载

大数据专业“数据采集与搜索”课程教学探索

2021-10-19蒋亮唐紫珺

现代信息科技 2021年5期
关键词:组件课程内容分布式

蒋亮 唐紫珺

摘  要:针对大数据背景下数据的海量性、异构性、多样性等特点,对大数据专业开设的“数据采集与搜索”课程产生了非常大的影响。因此该课程不管是教学内容还是教学方法都需要紧紧跟随大数据时代特性进行更新和调整。文章对这两方面进行了教学探索,提出了需要增加和强化Flume数据采集框架、Kafka消息队列、Easticsearch数据搜索引擎以及Python爬虫技术等教学内容,同时也进一步探讨了实践式教学、反馈式教学、个性化教学等教学方式,以能够适应大数据专业的教学需求。

关键词:数据采集;Flume;Kafka;Elasticsearch;Python爬虫;教学方法

中图分类号:TP311;G434       文献标识码:A 文章编号:2096-4706(2021)05-0138-03

Teaching Exploration of “Data Acquisition and Search” Course for Big Data Major

JIANG Liang,TANG Zijun

(Hunan College of Information,Changsha  410200,China)

Abstract:In view of the characteristics of data mass,heterogeneity and diversity under the background of big data,it has a great influence on the course of “Data Acquisition and Search” offered by big data specialty. Therefore,both the teaching content and teaching methods of the course need to be updated and adjusted closely with the characteristics of the era of big data. The article has carried on the teaching exploration to these two aspects,proposes the need to increase and strengthen Flume data acquisition framework,Kafka message queue,Easticsearch data search engine,Python crawler technology and other teaching content,and further discusses practical teaching,feedback teaching,personalized teaching and other teaching methods,in order to meet the teaching needs of big data major.

Keywords:data acquisition;Flume;Kafka;Elasticsearch;Python crawler;teaching method

0  引  言

在21世纪,大数据技术、数据挖掘、人工智能等技术已经成为智能时代发展的关键技术。而这些关键技术都是基于数据而进行相关的研究,因此数据采集是这些技术发展的前置条件,尤其是大数据的采集。而在大数据背景下,数据呈现的海量性、多样异构性特点对数据采集工作提出了巨大的挑战。传统的数据采集大多通过Python爬虫技术完成,并且目前高职院校开设的数据采集课程几乎都是围绕Python爬虫技术开展,这显然无法满足大数据时代的数据采集工作要求,并且海量数据下的搜索等知识点没有开设相关的课程内容。因此为了适应大数据背景下的数据采集与搜索,需要在“数据采集与搜索”课程中增加新的教学内容。同时为了更好地完成新内容的教学工作,也需要在教学方法上进行进一步的探讨。

1  Flume概述

Flume是一个分布式、高可用、高可靠海量日志采集、聚合和传输系统。Flume借助其内部的source、channel、sink等组件来完成数据采集工作的整个流程。source组件用来获取数据,channel组件可以缓存source组件采集的数据,sink组件则用来把缓存在channel的数据写入外部存储系统或者是下一个agent中。Flume通过将source、channel、sink等组件组装为agent并编写对应的配置文件来完成数据采集工作。Flume基本架构如图1所示。

2  Kafka概述

Kafka是一个分布式、高吞吐量、低延迟、分区、高容错,基于zookeeper协调的分布式发布订阅消息系统。其作为当前大数据生态中较流行的消息队列系统,其常用于处理事务日志和其它实时数据。

在上述Kafka架构图中,broker是Kafka服务器,负责对外提供服务;zookeeper用于保存Kafka一些元数据;Kafka producer用来把数据写入到Kafka消息队列中;Kafka consumer用来从Kafka消息队列中读取消息进行处理。Kafka组件的架构如图2所示。

3  Elasticsearch

Elasticsearch是ELK生态中负责数据存储和搜索的组件,其是基于Lucene库的分布式、RESTful的开源搜索引擎。它是一个分布式、高实时性、高扩展的搜索与数据分析引擎。分布式指的是它能够实现分布式的实时文件存储,每個字段都被索引并且可搜索;高实时性指的是它能够支持实时分析的分布式搜索,在亿万数据中做到毫秒级响应;高扩展指的是它可以轻易支持扩展到上百台服务器,处理PB级结构化或非结构化数据。Elasticsearch架构如图3,Gateway代表ElasticSearch索引的持久化存储方式。Distributed Lucene Directory,它是Lucene里的一些列索引文件组成的目录,用来负责管理这些索引文件。包括数据的读取、写入以及索引的添加和合并等。Elasticsearch的架构如图3所示。

Search Moudle是Elasticsearch中负责搜索的功能模块,Index Module是Elasticsearch中负责建立索引的功能模块。Mapping用来明确字段的类型以及Elasticsearch如何索引数据、以及数据是否被索引到等。Discovery,主要是负责集群的master节点发现。Transport,其代表Elasticsearch内部节点,代表跟集群的客户端交互,包括Thrift、Memcached、Http等协议。RESTful style API,通过RESTful方式来实现API编程,完成交互功能。

4  教学内容设计

在大数据背景下,“数据采集与搜索”课程通过增加Flume、Kafka、Elasticsearch等教学内容,能够跟上时代潮流,从而让学生能够掌握大数据采集与搜索的前沿技术。

4.1  Flume课程内容

Flume作为一个分布式、可靠、高可用的海量日记采集系统,其可以分为source、channel、sink、Interceptor、channel selector、sink processor等六部分内容来进行课程设计,如表1所示。

4.2  Kafka课程内容

Kafka作为一个分布式、高吞吐量、分区、多副本的消息队列,其可以分为集群安装、Kafka基础知识、Kafka producer、Kafka consumer、性能调优等五部分内容来进行课程设计,如表2所示。

4.3  Elasticsearch课程内容

Elasticsearch作为一个分布式、高实时性、高扩展的搜索与数据分析引擎,其可以分为集群安装、Elasticsearch基础知识、Elasticsearch CRUD操作、Elasticsearch性能调优等四部分内容来进行课程设计,如表3所示。

4.4  教学方式探究

在大数据背景下,数据采集课程与时俱进地引入新的教学内容,教师也需要根据学生的思维能力和学习能力的差异性,进行教学模式的改革。充分利用多媒体技术的优势,与学生进行线上、线下的互动,提升学生兴趣,调动学生学习积极性,帮助学生掌握数据采集课程的重难点。另外需要构建新的考核系统,在学习能力、学习态度、知识模块、课题测验、考试成绩等维度进行差异考核,体现学习引领性。同时针对数据采集课程的内容,也需要在教学方式上进行更新,以能够适应大数据专业的教学需求。以实践式教学为基础,指导学生进行课程内容实践,再以实践结论来加强理论知识的理解。充分利用反馈式教学,及时获取教学反馈,不断调整和改进教学内容和进度。积极借助个性化教学来丰富教学方式、提升课堂吸引力,从而提高教学质量。

5  教学案例

“数据采集与搜索”课程,增加了Flume、Kafka、Elasticsearch等核心内容,旨在加强学生对大数据组件实践操作能力。通过构建包含这些课程内容的实践案例来对课程进行整体设计。利用Flume提供的众多类型的组件来完成各种类型数据源的数据采集工作,并借助Kafka集群的分布式来提高数据存储的可靠性,再通过把数据写入到Elasticsearch中,实现数据的快速查询与分析。其拓扑图如图4所示。

5.1  实践步骤描述

(1)Flume组件用来获取爬虫数据,其步骤为:

步骤1:按照既定规则定义整个agent需要使用的组件;

步骤2:配置exec source的type、command、channel selector等配置项;

步骤3:配置file channel的type、dataDirs、checkpointDir、capacity等配置项;

步骤4:配置avro sink的type、hostname、port等配置项;

步骤5:通过把source、sink组件连接到channel上,组装为完整的agent。

(2)Kafka组件用来完成Flume采集数据的读写,其步骤为:

步骤1:利用Properties对象构建KafkaProducer对象;

步骤2:获取爬虫数据,封装为ProducerRecord对象;

步骤3:通过send方法将数据写入Kafka指定的Topic中;

步骤4:利用Properties对象构建KafkaConsumer对象;

步骤5:通过poll方法读取Kafka topic中的数据;

步骤6:将KafkaConsumer读取的数据写入ElasticSearch集群中。

(3)ElasticSearch组件用来实现数据的快速查询,其步骤为:

步骤1:通过Settings.builder方法构建链接ES集群的参数;

步骤2:使用TransportClient构建访问ES集群的客户端;

步骤3:使用ES提供的API构建查询逻辑并执行。

5.2  实践结果验证

验证数据是否正确写入到Kafka集群中,其结果如图5所示。

验证数据是否成功写入到Elasticsearch中,其结果如图6所示。

6  结  论

在大数据时代,不管是数据的海量性还是数据类型的多样性,都是数据采集需要面对的难题。针对高职院校的大数据专业,“数据采集与搜索”课程通过新增核心教学内容,构建层次分明、结构清晰的实践案例,并研究新型教学方式,探索出适合职业院校大数据人才的教学方案,培养出国家和社会需要的专业人才。

参考文献:

[1] 姜晓兵.基于大数据思维的经济管理类专业应用统计课程教学探索 [J].高教学刊.2020(12):94-97

[2] 胡夕.Apache Kafka实战 [M].北京:电子工业出版社,2018.

[3] 冯霞.基高职院校大数据方向数据库课程体系及教学模式的改革与探索 [J].电脑知识与技术.2021,17(9):101-102+112.

[4] 王勇,張跃.Kafka与HBase在健康监测大数据平台中的应用研究 [J].软件导刊.2021,20(4):188-193

[5] 马智勤,廖雪花,邓威,等.基于分布式ElasticSearch相似内容比对算法研究 [J].计算机与数字工程.2020,48(12):2843-2849.

作者简介:蒋亮(1988—),男,汉族,湖南邵阳人,助教,硕士研究生,研究方向:数据挖掘、人工智能、大数据技术、机器视觉等;唐紫珺(1993—),女,汉族,湖南永州人,助教,硕士研究生,研究方向:生物信息学算法,大数据分析。

猜你喜欢

组件课程内容分布式
创建Vue组件npm包实战分析
光伏组件热斑对发电性能的影响
居民分布式储能系统对电网削峰填谷效果分析
课程思政视域下职业院校实训课程内容的重构
智能机械臂
基于Paxos的分布式一致性算法的实现与优化
析课程内容 谋教学佳策——“数的认识”模块知识的教学思考
新生态学校如何诠释课程内容
嵌入式组件技术的研究及应用
幼儿园艺术课程内容的选择