网站首页 > 博客文章 正文
摘 要:随着工业 4.0的到来,互联网与工业结合愈发紧密,但工业大数据规模大、类型杂、质量低的特点导致大量设备 数据无效且企业人员无法正确监测到设备信息。针对这一问题, 提出一种基于Flink的工业大数据平台。以企业传感器数据为基础, 用 Flink 将不同类型的数据发送至消息管道Kafka中暂存数据,用Flink对Kafka中的数据进行处理,实现工业大数据的查询与预警,与当前典型的两个大数据平台进行比较。实验结果表明,由Flink和Kafka集成的工业大数据平台,能更清晰高效地查询到设备数据且能够更快速地实现对企业设备的预警。
关键词:工业4.0;工业大数据;大数据处理平台;弗林克;卡夫卡;查询预警
引 言
针对工业大数据平台的研究[1‐4],文献[5]采用Dub‐bo与NoSQL构建了工业领域大数据平台,为工业领域不断增长的数据提供了解决办法。文献[6]提出了一个面向工业的数据处理系统,其以Spark 为框架,选取MySQL和HDFS为存储介质,实现了工业数据的快速分析。文献[7]将物联网与大数据相结合,构建了一个工厂能耗分析平台,实现了能耗数据的查询以及数据的分析。
目前工业大数据平台已得到广泛研究, 但工业大数据平台技术架构不同,差异性较大,再者对于很多工业大数据平台而言,其数据处理效率较低,预警时间较长。针对上述问题,本文研究了一种基于Flink的工业大数据平台,主要贡献如下:
(1)采用Kafka和Flink进行集成,对数据进行传输和处理,并将处理过的数据按照类型存储至数据池中;
(2)利用Flink对工业大数据进行预处理,提高平台运行的准确性;
(3)采用多种大数据技术,实现工业大数据平台的数据查询以及预警功能,且相对于典型大数据平台而言,速度更快、效率更高。
1 关键技术介绍
1. 1 Apache Flink
Apache Flink是一个分布式处理框架,可在无边界和有边界数据流上进行计算[8] 。Flink不仅能运行在YARN、Mesos等资源管理框架上,而且能在单独集群中运行,适用于具有不可靠数据源、海量数据处理等场景。此平台采用Flink的最主要原因是:工业大数据类型杂,既包括流数据,又包括批数据,而Flink两者都可以处理。它适用的主要场景是流数据方面的,而批数据是“特殊的流数据”,所有任务都可以当成流来处理[8] ,并且数据处理延迟性较低。其架构[8] 如图1所示。
对于流数据应用来说,Flink提供DataStreamAPI 。对于批数据处理应用来说,提供DataSet API。它支持Java 和Scala语言,同时支持Kafka的输入数据和ElasticSearch、MySQL、InfluxDB多种数据库。Flink同时具有高度灵活的窗口操作,包括time、count等窗口操作, 如:每隔多久发送数据至客户端、每次发送数据的个数等,十分适用于工业场景。
1.2 Kafka
Kafka 是一个基于Zookeeper 的分布式消息系统,它具有高吞吐、低延迟、可靠性好、容错能力强的良好特性[9] 。低延迟体现在Kafka每秒能够处理巨量信息且延迟很低,只有几毫秒,适用于工业生产过程中海量数据的处理;高吞吐率体现在即使应用在廉价的商用机器上,Kafka也能进行每秒100K消息的传输。Kafka也较为可靠,传输的数据可以在本地磁盘持久保存,同时数据会自动进行备份,数据丢失后仍可找到数据。Kafka容错性较好,集群中节点是允许失败的(如副本数量为n,则n-1个节点是允许失败的)[9] 。此平台选用Kafka消息队列能够更好地解耦,也增强了平台的扩展性,即使企业数据发生改变,不需要改变代码和调节参数就可以轻松实现用户要求。同时也保证了数据传送的顺序性和安全性。
1.3 Grafana
Grafana是一个可靠性较好的可视化和度量分析工具。它具有灵活和快捷的客户端图表,有多种可视化指标和面板插件,官方库里有图表、折线图、文本文档等丰富的仪表盘插件;它支持多种数据库如:MySQL、InfluxDB、Prometheus、OpenTSDB、Elasticsearch和KairosDB等等;Grafana可通过直观的可视化方式进行预警并发送通知,当获得的数据大于用户设定的阈值时通知Slack、DingDing、Email等;并且数据源不同,但仍可以使用在同一图表中,数据源的来源可以根据每个查询决定,也可以自定义数据源;Grafana同时具有丰富的注释图,注释图表能显示不同数据源的丰富事件,当鼠标停留在图表时,会以全面的标记来显示出元数据。
1. 4 InfluxDB
InfluxDB是一个用于处理海量数据写入与数据查询的时间序列数据库,应用于有大量时间戳数据的场景下,例如DevOps (过程、方法、系统)监控,物联网工业数据实时分析等。它是分布式扩展的,不依赖外部任何条件。它还可以对ETL进行后台处理并实时监控预警。它有类似SQL的查询语言,可轻松方便查询到需要的数据。不仅如此,InfluxDB连续查询自动计算聚合数据,大大提高了频繁查询的效率。本平台中的数据量较大,时间戳数据较多,因此InfluxDB是工业大数据存储的绝佳选择。
2 工业大数据平台框架设计
本平台旨在实现一个能满足对工业大数据进行存储、集成、分析的平台,能够为企业多种业务提高指导和决策支持。其架构如图2所示,其主要分为5个部分,包括:数据源模块、消息队列模块、数据存储模块、数据处理模 块、可视化模块。
2. 1 数据源模块
此平台的数据源主要分为两种,一种是静态系统数据,第二种是实时流数据。数据源获取的方式主要如下:(1)静态系统数据一般是由公司专门人员去收集,如设备生产日期、企业名称、设备编号等,这些数据以特定的形式整理形成一个Excel 表格,能够直接使用;
(2)大多数的企业获取数据的方式都是通过各种传感器,传感器获取到的设备的状态、运行时间等实时数据,然后将这些数据发送给此平台的处理系统;
(3)企业的很多数据会分布在不同地区的不同公司,所以这时候它们通常会以日志的形式存在,而Flume是一 个很好的日志收集工具[10] 。这个工具能够将这些日志文件识别出来,并整理收集在一起,并发往此工业大数据平台;
(4)工业生产中会产生很多业务静态数据,但它们的格式可能不是我们所需要的, 此时可以使用 Sqoop 数据源 转换工具,将它们转换为我们所需要的格式, 然后再将这 些数据发送给工业大数据平台。
2.2 消息队列模块
消息队列主要指数据在传输过程中保存数据的一个容器。工业大数据类型多,数据量大,面对此场景使用消息队列是一个极佳的选择,因为消息队列能够极大地降低系统响应时间、提高系统稳定性,同时保证数据传输的顺序性和安全性,最重要的是实现数据的异步化,并起到解耦的作用。
此模块选用Kafka作为消息队列系统,利用Flink将数据源模块中的实时数据和批数据都暂存至消息队列中。Flink作为生产者,会源源不断地生产出消息,然后发送给消息队列Kafka中,而Kafka就成为了消费者,它会不断地从Flink中获取到消息,从而对这些数据进行进一步处理。
2. 3 数据处理模块
本模块主要采用Flink来处理实时大数据和离线批数据。根据数据类型,将此模块又分为实时数据处理模块和批数据处理模块。Flink能够同时支持批处理与流处理任务,它包含两种预先定义的函数:DataStream API和Data‐Set API 。DataStream API包括reduce、aggregations、filter等方法。DataSet API包括distinct 、 Hash‐Partition 、win‐dow等方法。
批数据处理模块中,此平台会利用aggregations中的sum ()、min ()、max ()方法对批数据进行统计,求出工业数据的最大值、最小值、总和等,并在前端显示出来。
流数据处理模块主要是对数据进行预处理。在工业大数据的实际生产过程中,由于人工失误或者数据采集设备 因生产环境恶劣会导致收集到的数据不准确,这些数据如果直接存入到数据库中不仅会降低大数据平台查询数据的准确性,而且会大大降低平台的运行效率。此模块主要利用Flink来去除实际业务处理中的无效数据、重复数据以及缺失率较高的数据,其预处理的流程如图3所示。
内容转自万方数据,赵润发、娄渊胜、叶枫、石宏著,若有侵权联系删除。
需要全部内容,关注公众号“智能制造趋势”,回复629即可免费获取。
- 上一篇: Flink实时计算应用实践:问题剖析及解决方案
- 下一篇: Java 17 新特性(java新特性)
猜你喜欢
- 2024-10-23 Flink实时计算应用实践:问题剖析及解决方案
- 2024-10-23 单机也能玩大数据,初探实时计算神器Flink及踩坑经历
- 2024-10-23 Flink在美团的实践与应用(flink原理与实践)
- 2024-10-23 阿里巴巴主推的 Flink 为什么火?(阿里巴巴收购flink)
- 2024-10-23 Apache Flink Time & Window 深度解析
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)