前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用于物联网的大数据参考架构

用于物联网的大数据参考架构

作者头像
StoneDemo
发布2018-06-01 10:51:18
1.7K0
发布2018-06-01 10:51:18
举报
文章被收录于专栏:小石不识月

工业物联网(IIOT,Industrial Internet of Things)正成为社会中的技术趋势与核心业务。IIOT 赋能诸如市政(Municipalities)、工业制造、公用事业、电信,以及保险等各类实体,以解决关键客户与运营的挑战。当前,技术创新在大数据、预测分析和云计算等领域的发展,使得人们可以大规模地集成与分析大量的设备数据,同时对这些数据执行一系列分析以及业务处理流程。

本文旨在讨论供应商(以及产品)不可知的参考架构,这其中涵盖了端到端的 IIOT 实现,以及此类结构的各个层次。我们的终极目标就是能够创建数据驱动(Data-driven)的企业业务应用。

数据框架综述

IIoT 实现的首要需求就是支持事物本身或设备层(Device layer)的互联互通。设备层包含了一系列的传感器、执行器、智能手机、网关,以及工业设备等等。使用各种协议来连接设备与边缘设备(例如路由器和智能网关)的能力是关键点。这些网络协议包括以太网、Wi-Fi,以及蜂窝(Cellular),它们都可以直接连接到互联网。其他需要网关设备连接的协议包括了蓝牙、RFID、NFC,以及 Zigbee 等等。如上所述的设备可以直接连接到数据摄取层,但最好是通过网关(可执行一系列的边缘处理)进行连接。从商业角度来看,这是很重要的。比如说,在医疗和金融服务等特定领域,当某些标识数据元素(例如视频流)可以离开医院或银行的场所时,这有着严格的管理规定。网关不仅可以执行智能边缘处理,还可以连接数千个设备端点,并促进与核心 IIoT 架构的双向通信。对于远端位置(Remote location),诸如 Arrow BeagleBone Black Industrial 以及 MyPi Industrial 这类功能更为强大的设备,您可以运行微型 Java 或 C++ MiniFi 代理以满足您的安全连接需求。这些代理将会把数据发送到 Apache NiFi 网关,或直接发送到云端的(或者企业内部预置的)企业 HDF 群集中。

基于消息的实际内容,将设备终端发送的数据建模为适当的域表示(Domain representation)。所发送的数据还包括消息周围的元数据(Metadata)。根据情况(基于实际业务领域),我们可以选择开发一个规范模型(Canonical model),从商业智能的角度来看,这一模型应能支持各式各样的应用程序。

这些不断发展的设备、元数据、协议、数据格式,以及类型的理想工具即是 Apache NiFi。Apache NiFi 提供了获取不断变化的文件格式、大小、数据类型以及模式的灵活性。无论您的设备是今天发送 XML 还是明天发送 JSON,Apache NiFi 都支持摄取您可能拥有的所有文件类型。一旦进入 Apache NiFi,它就被笼罩在不安全之中,每一个流文件的每次接触都被控制,保护和审计。对于通过系统发送的每个文件、数据包或大块数据,您将拥有完整的数据来源信息。如果您对文件类型有特殊要求,Apache NiFi 可以使用特定模式,但也可以使用非结构化或半结构化数据。NiFi 可以在零主服务器(Zero-master)上同时吸收 5 万个数据流,这是个非共享集群(Shared-nothing cluster),它可以通过 Apache Ambari 轻松地管理水平扩展。

数据层与中间件层

IIoT 架构建议使用具有原生消息中间件(MOM,Message-oriented middleware)能力的大数据平台来摄取设备网格中的数据。随着业务需求的增加,该层还将以批处理(Batch)或实时的方式处理设备数据。

许多网关设备都部署了诸如 AMQP,MQTT,CoAP,WebSockets 等这类应用程序协议,以传送特定应用的信息。为 IIoT 推荐 大数据 / NoSQL 主导的数据架构的原因很简单。这些系统提供了 Schema on Read(读时模式),这是一种创新的数据处理技术。在此模型中,格式或模式是应用于从存储位置访问的数据的时候,而不是在数据摄取时应用。从 IIoT 的角度来看,不仅要处理数据本身,还要处理诸如时间戳、设备 ID、其他固件数据(例如软件版本,设备制造数据等)这类元数据。从设备层发送的数据将由时间序列数据以及个体测量(Individual measurements)数据组成。

IIoT 的数据流可以被形象化为一个持续运行的数据泵(Data pump),该数据泵由大数据管道负责,而这一数据管道从网关获取原始的遥测数据(Telemetry data),它决定了哪些数据是有趣的,并丢弃那些从商业角度看来不重要的数据流。Apache NiFi 即是你的网关以及看门人(Gatekeeper)。它可以采集原始数据、管理成千上万生产者与消费者的流量、进行基本的数据浓缩(Data enrichment)、对流数据进行情感分析、聚合、拆分、模式转换、格式转换,以及其它准备数据的初始步骤。这些操作都可通过人性化的网页用户界面以及易于扩展的架构来完成。随后,它会将原始或已处理的数据发送到 Kafka,以供 Apache Storm、Apache Spark 或其他消费者进行进一步的处理。Apache Storm 是一个分布式实时计算引擎,它可以可靠地处理无限的数据流。Storm 擅长处理需要窗口化和其他复杂事件处理的复杂数据流。当 Storm 处理大规模数据流时,Apache Kafka 会按照规模进行消息分发。Kafka 是一个分布式的发布 - 订阅(pub-sub)实时消息系统,它提供了强大的耐久性和容错保证。NiFi,Storm 和 Kafka 天生就是相辅相成的,他们的强力合作能够实现对快速移动的大数据的实时流分析。所有的流处理都由 NiFi-Storm-Kafka 组合负责。我们可以把这个组合视为流媒体的复仇者。

为了支持设备识、ID 查找、安全认证以及数据转换,我们在更高层内置了适当的逻辑。该层将处理数据(清理,转换和应用规范化表示),以支持业务自动化(BPM),BI(商业智能)以及各类消费者的可视化。数据摄取层还将通过 Apache NiFi 提供通知与警报(Alerts)。

以下是该事件处理管道的一些典型用途:

  • 实时数据过滤以及模式匹配。
  • 基于业务环境的改进(Enrichment)。
  • 实时分析,例如 KPI,复杂事件处理等。
  • 预测分析。
  • 具有决策节点和人工任务节点的业务工作流。

应用层

一旦设备数据被采集到现代数据湖(Data lake)中,需要执行的主要功能包括数据聚合、转换、浓缩、过滤,以及排序等。可以看到,这很快变得非常复杂 —— 从数据存储与处理的角度来看。基于云的基础架构能够提供高度可伸缩的计算能力,以及网络和存储资源,它们是处理突发性 IIoT 应用(Bursty IIoT App)的天作之合。然而,IIoT 应用增加了自身对计算基础架构的多种要求,即能够容纳数百种设备和网关,这就意味着 IT 必须做好准备,以支持各种各样的操作系统和存储类型。

业务集成与表示层负责将 IIoT 环境集成到企业的业务流程中。IIoT 解决方案通过适配器或企业应用程序集成(EAI,Enterprise application integration)与企业对企业(B2B,Business-to-business)网关功能与现有的业务线应用和标准软件解决方案相关联。企业对企业,或企业对消费者(Business-to-consumer)场景中的终端用户将通过该层与 IIoT 解决方案和专用 IIoT 设备进行交互。他们可能会使用 IIoT 解决方案或业务线系统 UI,这包括个人移动设备(例如手机与平板电脑)上的应用程序。

一旦 IIoT 知识成为基于 Hadoop 的数据湖的一部分,现在所有大量的分析、机器学习以及深度学习框架、工具和库,这些资源都可提供给数据科学家和分析师使用。他们可以通过与湖中现存的数据(包括社交媒体数据,EDW 数据和日志数据)结合的 IIoT 数据轻松地产生洞察(Insights)、项目仪表板(Dashboards)、报告,以及实时分析。您可以通过各种接口(例如 HBase 上的 Apache Phoenix,Apache Hive LLAP 和 Apache Spark SQL)来使用您所熟悉的 SQL 语句查询所有数据。使用现有的 BI 工具或开源的 Apache Zeppelin,您可以制作并共享实时报告。您可以在 YARN 上的容器中运行 TensorFlow,以从您的图像、视频,以及文本数据中深度学习洞察,同时还可以运行 YARN-clustered Spark 的机器学习管道(由 Kafka 与 NiFi 提供数据流)以便在训练过的模型中执行流式机器学习算法。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据框架综述
  • 数据层与中间件层
  • 应用层
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档