如何运行与Apache Kafka和MQTT代理演示?

电子说

1.3w人已加入

描述

用于传感器分析的KSQL UDF。利用KSQL的新的API特性,用Java轻松地构建UDF / UDAF函数,从而使用Apache Kafka进行连续流处理。用例:联网汽车——使用深度学习的实时流媒体分析。

我为混合机器学习基础设施构建了一个场景,利用Apache Kafka作为可伸缩的中枢神经系统。使用公共云在极端尺度下训练分析模型(如通过谷歌ML引擎在谷歌云平台(GCP)上使用TensorFlow和TPUs。预测(即模型推断)是在本地Kafka基础设施的边缘前提下执行的(例如利用Kafka流或KSQL进行流分析)。

这篇文章的重点是在前提部署。我用KSQL UDF创建了一个用于传感器分析的Github项目。它利用KSQL的新API特性轻松地使用Java构建UDF / UDAF函数,对传入事件进行连续流处理。

用例:联网汽车——使用深度学习的实时流媒体分析

连续处理来自连接设备(本例中的汽车传感器)的数百万个事件:

我建立了不同的分析模型。他们在公共云上接受训练,利用TensorFlow、H2O和谷歌ML引擎。模型创建不是这个示例的重点。最终的模型已经准备好投入生产,并可以部署进行实时预测。

模型服务可以通过模型服务器或原生嵌入到流处理应用程序中来完成。查看模型部署中RPC与流处理的权衡和“TensorFlow + gRPC + Kafka流”示例。

演示:使用MQTT、Kafka和KSQL在边缘进行模型推断

Github项目生成汽车传感器数据,通过Confluent MQTT代理将其转发到Kafka集群进行KSQL处理和实时分析。

这个项目主要是通过MQTT将数据输入Kafka,通过KSQL对数据进行处理:

Confluent MQTT代理的一大优点是可以简单地实现物联网场景,而不需要MQTT代理。您可以通过MQTT代理直接将消息从MQTT设备转发到Kafka。这大大减少了工作和成本。如果您“只是”希望在Kafka和MQTT设备之间进行通信,那么这是一个完美的解决方案。

如果你想看这个故事的其他部分(与像Elasticsearch / Grafana这样的sink应用的集成),请看看Github项目“KSQL流物联网数据”。通过Kafka Connect和Elastic connector实现了与ElasticSearch和Grafana的集成。

KSQL UDF 源代码

开发udf非常容易。只需在一个UDF类中实现一个Java方法:

下面是KSQL UDF异常检测的完整源代码。(Anomaly Detection KSQL UDF.)

如何运行与Apache Kafka和MQTT代理演示?

在Github项目中描述了执行演示的所有步骤。

您只需要安装Confluent Platform,然后按照以下步骤部署UDF、创建MQTT事件并通过利用分析模型的KSQL处理它们。

我使用mosquito to生成MQTT消息。当然,您也可以使用任何其他MQTT客户机。这就是开放和标准化协议的最大好处。
       责任编辑:pj

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分