• 沒有找到結果。

工业IoT边缘实时流分析_智能边缘平台 IEF_最佳实践_华为云

N/A
N/A
Protected

Academic year: 2022

Share "工业IoT边缘实时流分析_智能边缘平台 IEF_最佳实践_华为云"

Copied!
23
0
0

加載中.... (立即查看全文)

全文

(1)

最佳实践

文档版本 02

发布日期 2021-10-26

(2)

版权所有 © 华为技术有限公司 2022。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

(3)

目 录

1 智慧园区人脸检测... 1

1.1 环境准备...1

1.2 IEF 服务配置...4

1.3 下发人脸检测算法... 7

2 工业 IoT 边缘实时流分析...9

3 通过专线或 VPN 连接 IEF...12

4 使用开源 C 语言库连接 MQTT Broker... 17

(4)

1 智慧园区人脸检测

1.1 环境准备

通常园区视频功能主要集中在存储和查看,视频分析和态势感知能力较弱。通过使用 智能边缘平台与视频分析服务(VAS),提升视频分析和感知能力,实现智慧园区人 脸识别检测功能。

说明

本实践需要使用到视频分析服务的“边缘人脸提取”功能,使用前您需要确认该功能是否在您使 用的区域已经上线。本实践以“华北-北京四”区域举例说明。

在开始使用之前,需要先完成相应的环境准备工作。

步骤1 配置边缘摄像头。

请参考摄像头相应型号官方配置文档,登录Web管理页面,配置IP地址,获取rtsp视频 流地址。以海康摄像头为例,根据摄像头型号,按照说明书设置IP地址激活摄像机,

激活后按照电脑IP配置摄像头IP地址,保持终端设备IP地址与电脑IP地址处于同一网段 内;随后登入摄像头浏览器控制页面,添加用户,获得视频流地址,海康摄像头的rtsp 地址格式为:XXXX,摄像头配置完成后,使用VLC(https://www.videolan.org)对 摄像头rtsp流进行检验。使用VLC软件进行播放来检测是否有标准rtsp视频流。

步骤2 准备边缘节点服务器。

该场景下需要部署边缘智能视频算法,因此需要有一定的计算能力,该场景下边缘节 点的最低要求如下:

(5)

1-1 边缘节点要求

项目 规格

OS 操作系统语言必须切换至英文。

● x86_64架构

Ubuntu 16.04 LTS (Xenial Xerus)、Ubuntu 18.04 LTS (Bionic Beaver) 、CentOS 7.x 和RHEL 7.x、银河麒麟 4.0.2、中兴新支点v5.5、中标麒麟v7.0

● armv7i(arm32)架构

Raspbian GNU/Linux 9 (stretch)

● aarch64(arm64)架构

Ubuntu 18.04.2 LTS (Bionic Beaver)

内存 边缘软件开销约128MB,为保证业务的正常运行,建议边 缘节点的内存大于256MB。

CPU >= 1核 硬盘 >= 1GB

GPU(可选) 同一个边缘节点上的GPU型号必须相同。

说明当前支持Nvidia Tesla系列P4、P40、T4等型号GPU。

含有GPU硬件的机器,作为边缘节点的时候可以不使用GPU。

如果边缘节点使用GPU,您需要在纳管前安装GPU驱动。

NPU(可选) 华为昇腾AI加速处理器。

说明当前仅支持集成了华为昇腾310、910芯片的边缘节点,如Atlas 300推理卡、Atlas 500智能小站、Atlas 800推理服务器。

如果边缘节点使用NPU,请确保边缘节点已安装驱动(目前昇腾 310仅支持1.3.x.x和1.32.x.x的固件版本,例如1.3.2.B893,可用 npu-smi info命令查看固件版本)。如果没有安装驱动,请联系设 备厂商获取支持。

容器引擎(使用容器

应用的场景必选) Docker版本必须高于17.06,推荐使用18.06.3版本。

(请勿使用18.09.0版本Docker,该版本存在严重bug,详 见https://github.com/docker/for-linux/issues/543;如 果已使用此版本,请尽快升级。Atlas 500小站预置的 Docker 18.09.0.60软件版本已经修改该问题。)

须知Docker安装完成后,请将Docker进程配置为开机启动,避免系统 重启后Docker进程未启动引起的系统异常。

Docker Cgroup Driver必须设置为cgroupfs。

glibc 版本必须高于2.17。

端口使用 边缘节点需要使用8883端口,8883端口用于边缘节点内置 MQTT broker监听端口,请确保该端口能够正常使用。

(6)

项目 规格

时间同步 边缘节点时间需要与UTC标准时间保持一致,否则会导致 边缘节点的监控数据、日志上传出现偏差。您可以选择合 适的NTP服务器进行时间同步,从而保持时间一致。详细 配置方法请参见如何同步NTP服务器?。

步骤3 安装Docker。

根据边缘计算节点的操作系统,安装对应版本的Docker。

说明

Docker安装完成后,请将Docker进程配置为开机启动,避免系统重启后Docker进程未启动引起 的系统异常。

步骤4 安装GPU驱动并将GPU驱动文件拷贝到边缘节点指定目录下。

在园区人脸检测场景中,需要使用边缘节点上的GPU能力,所以需要提前在边缘节点 上安装GPU驱动,缺少GPU驱动会导致人脸识别算法下发失败。

具体操作请参见拷贝GPU驱动文件。

步骤5 购买DIS通道。

人脸检测场景中,选择DIS作为数据传输通道,将边缘侧识别出的人脸图片及元数据上 传云上进行分析。

在DIS控制台中,单击右上角“购买接入通道”,根据提示配置名称、通道类型等参 数。DIS通道详细配置请参考开通DIS通道。

DIS通道创建完成后请记录通道名称,在下发人脸检测算法时需要选择该通道。

(7)

1-1 DIS 通道参考配置

----结束

1.2 IEF 服务配置

步骤1 注册边缘节点并纳管。

1. 登录IEF管理控制台。

2. 选择左侧导航栏的“边缘资源 > 边缘节点”,单击页面右上角的“注册边缘节 点”。

3. 配置边缘节点基本信息。

如图1-2所示,填写边缘节点的名称,AI加速卡选择“Nvidia GPU”,不绑定终端 设备。

(8)

1-2 基本配置

如图1-3所示,为节点配置系统日志和应用日志。您可以自行选择是否开启云端日 志(开启后,可在AOM服务中查看日志)。

1-3 日志配置

4. 阅读并勾选协议后单击“注册”,进入如下图页面,请下载配置文件和软件,在 纳管边缘节点时将会用到。

1-4 下载配置文件和边缘核心软件

(9)

5. 在右下角勾选“我已完成下载配置文件”,并单击“完成”,边缘节点注册完 成。

6. 纳管边缘节点,具体操作请参见纳管边缘节点。

步骤2 创建设备模板。

1. 登录IEF管理控制台。

2. 选择左侧导航栏“边缘资源 > 终端设备”,单击页面右上角的“创建设备模 板”。

3. 填写设备模板名称,增加模板属性和标签等。

– 访问协议选择“MQTT”。

– 模板属性的属性名请填写“rtsp”,类型为“string”,属性值请输入用户自 己的rtsp视频地址,rtsp地址格式为“rtsp://IP:554”,例如“rtsp://

192.168.0.10:554”。

– 标签名请填写“iva-device-type”,标签值请填写“camera”。标签用于标 识设备,视频分析服务通过标签识别关联的摄像头设备。

1-5 设备模板配置

须知

此处“rtsp”、“iva-device-type”和“camera”必须全部为小写。

4. 单击“创建”,即创建设备模板成功,返回到设备模板页面。

步骤3 创建边缘摄像头。

1. 登录IEF管理控制台。

2. 选择左侧导航栏“边缘资源 > 终端设备”,单击页面右上角的“注册终端设 备”。

3. 填写设备参数。

– 填写设备名称。

– 访问协议选择“MQTT”。

– 选择步骤2中创建的设备模板。

4. 单击“注册”完成一个终端设备的添加。

(10)

步骤4 给边缘节点绑定终端设备。

1. 登录IEF管理控制台。

2. 选择左侧导航栏“边缘资源 > 边缘节点”。

3. 选择步骤1中注册的边缘节点,单击进入节点详情页,选择“设备”页签。

4. 单击“绑定设备”,在弹出的对话框中勾选需要添加的终端设备,填写设备与节 点的关系(请填写“camera”)以及备注,然后单击“确定”。

完成以上操作就可以为您的边缘节点添加一个终端设备,如图1-6所示。

1-6 绑定设备

5. 绑定设备之后,单击终端设备名称,进入终端设备详情页面,可以修改终端设备 的属性信息,查看终端设备关联的节点、设备孪生信息、标签等。

----结束

1.3 下发人脸检测算法

步骤1 购买边缘人脸检测算法包。

1. 登录视频分析服务控制台,并选择与边缘节点相同的区域。

2. 在页面左侧导航栏中选择“服务 > 园区智能体”,进入视觉能力包列表,在边缘 人脸检测算法包所在行单击“购买”。

(11)

1-7 购买边缘人脸检测算法包

3. 选择“购买时长”和“视频路数”,单击“立即购买”。

步骤2 在“服务 > 园区智能体”页面,单击已购买算法包操作栏的“使用”。

步骤3 在目标服务的操作栏,单击“创建作业”,进入创建视觉分析作业页面,设置作业参 数。

步骤4 输入数据选择“Edge Camera”,获取摄像头设备列表,选择相应的摄像头。位于右 侧的摄像头名称表示已选择摄像头,如图1-8所示。

1-8 选择终端设备

步骤5 输出类型选择“DIS”,通道名选择步骤5中购买的DIS通道,如图1-9所示。

1-9 填入通道名称

步骤6 单击页面右下角“立即创建”。

创建完成后,就会自动下发作业,由于需要拷贝2G左右的镜像到边缘服务器上,所以 需要一定的时间。可以通过查看作业的状态判断是否成功。

步骤7 查看人脸检测结果。

1. 登录DIS控制台,单击DIS通道名称进入详情页,在“监控”页签查看输入流是否 有数据。

2. 使用DIS接口查看检测到的人脸数据。

----结束

(12)

2 工业 IoT 边缘实时流分析

终端设备可以产生大量的数据,为了减少数据上云的数据量或提高数据处理实时性,

有时需要在靠近数据产生的地方对其进行分析处理。智能边缘平台可以和数据湖探索 服务(DLI)结合,通过在边缘节点上部署系统提供的流计算应用,将实时流计算能力 从云端延伸到边缘。然后通过数据湖探索服务编辑流处理作业并下发到边缘执行,可 以帮助您在边缘快速实现对流数据的实时、快速、准确地分析处理。

2-1 边缘实时流分析

前提条件

● 已开通IEF和DLI服务。

● 已成功注册并纳管边缘节点。

部署应用

(13)

2-2 创建作业

步骤5 配置作业信息。

类型选择“Flink Edge SQL”,填写名称,描述、模板和标签均为可选填内容,若使 用已存在的模板创建作业,可帮助您快速完成新建。

步骤6 单击“确定”,进入“编辑”页面。

2-3 编辑作业

步骤7 根据需要编辑Flink SQL边缘作业,处理终端设备数据。当前支持edgehub类型 、 encode为json或csv的输入输出,具体SQL语法可参考Flink SQL语法参考。

参考示例:功能为输出学生成绩大于或者等于80分的姓名和成绩。

create source stream student_scores(name string, score int) with ( type = "edgehub",

topic = "abc", encode = "json",

json_config = "score = student.score; name=student.name"

(14)

);create sink stream excellent_students(name string, score int) with ( type = "edgehub",

topic = "abcd", encode = "csv", field_delimiter = ","

);insert into excellent_students select name, score from student_scores where score >= 80;

步骤8 在界面右侧选择作业所需并行数和作业所属边缘节点,支持选择多个边缘节点部署作 业。

步骤9 单击界面右上角“启动”,进入作业费用清单界面,单击“立即”。可在作业管理界 面查看作业运行状态,单击具体作业可查看作业详情、作业监控、执行计划等信息。

----结束

验证作业运行效果

步骤1 登录任一节点(该节点需与边缘节点网络互通),安装mosquitto软件。

mosquitto软件的下载请参见https://mosquitto.org/download/。

步骤2 执行如下命令订阅数据。

mosquitto_sub -h 127.0.0.1 -t abcd abcd为作业中定义的topic名称。

步骤3 打开一个新的窗口,执行如下命令发布数据。

mosquitto_pub -h 127.0.0.1 -t abcd -m '{"student":{"score":

90,"name":"1bc2"}}'

abcd为作业中定义的topic名称。

数据发布后,在步骤2中订阅就能收到对应的数据。

----结束

(15)

3 通过专线或 VPN 连接 IEF

操作场景

线下边缘节点无法通过公网访问IEF时,可以选择通过云专线(DC)或VPN连接华为 云VPC,然后通过VPC终端节点在VPC提供私密安全的通道连接IEF,从而使得线下边 缘节点在无法访问公网时连接IEF。

连接方案说明

纳管边缘节点部署应用时,需要能够与IEF、SWR、OBS通信,在无法通过公网连接的 情况下,可以先通过VPN或专线(DC)与华为云VPC连接,然后通过VPC终端节点服 务,让VPC能够在内网访问IEF、SWR和OBS,具体连接方案如图3-1所示。

与IEF连接需要创建三个终端节点,分别为如下三个。

● ief-placement:用于边缘节点的纳管和升级。

● ief-edgeaccess:用于边缘节点与IEF发送边云消息。

● ief-telemetry:边缘节点上传监控和日志数据。

与SWR连接需要创建一个终端节点,与OBS通信需要创建OBS和DNS两个终端节点

(OBS只能通过域名访问,需要通过DNS动态解析OBS的地址才能访问到)。

(16)

3-1 通过专线或 VPN 连接 IEF

操作步骤

步骤1 在华为云上创建VPC。

创建VPC的方法请参见创建虚拟私有云和子网。

您也可以使用已有VPC。

须知

VPC网段不能与IDC的网段重复。

步骤2 使用DC或VPN连接VPC。

具体连接方法请参见如下链接。

● VPN:https://support.huaweicloud.com/qs-vpn/zh-

cn_topic_0133627788.html

(17)

1. 登录VPCEP控制台,单击右上角的“购买终端节点”。

2. 选择IEF的终端节点和虚拟私有云,如下图所示。

3-2 创建 IEF 终端节点

3. 单击“立即购买”,确认信息无误后单击“提交”,完成创建。

步骤4 创建SWR终端节点,使得边缘节点能够从SWR拉取容器镜像。

创建方法与创建IEF终端节点相同。

3-3 创建 SWR 终端节点

步骤5 创建DNS和OBS终端节点,使得边缘节点能够访问OBS。

具体方法请参见访问OBS。

(18)

步骤6 给边缘节点添加hosts配置。

查询IEF和SWR的终端节点IP地址,共4个IP地址,配置到边缘节点的“/etc/hosts”文 件中。

3-4 查询终端节点 IP 地址

打开“/etc/hosts”文件,在文件末尾加入如下配置,使得访问IEF和SWR的域名指向 终端节点的IP地址。

须知

此处IP地址和域名需要根据实际情况修改,IP地址为上面步骤查询到的地址,不同区域 的域名不相同,具体请参见域名地址。

192.168.2.20 ief2-placement.cn-north-1.myhuaweicloud.com 192.168.2.142 ief2-edgeaccess.cn-north-1.myhuaweicloud.com 192.168.2.106 ief2-telemetry.cn-north-1.myhuaweicloud.com 192.168.2.118 swr.cn-north-1.myhuaweicloud.com

步骤7 注册并纳管边缘节点,具体步骤请参见边缘节点概述。

----结束

域名地址

说明

铂金版ief-edgeaccess有单独的地址,请在IEF控制台“总览”页面查询,云端接入域名的取值即 为edgeaccess域名。

区域 名称 域名

华北-北京一 ief-

placement ief2-placement.cn-north-1.myhuaweicloud.com ief-edgeaccess ief2-edgeaccess.cn-north-1.myhuaweicloud.com

ief-telemetry ief2-telemetry.cn-north-1.myhuaweicloud.com

(19)

区域 名称 域名

ief-telemetry ief2-telemetry.cn-north-4.myhuaweicloud.com swr swr.cn-north-4.myhuaweicloud.com

华南-广州 ief-

placement ief-placement.cn-south-1.myhuaweicloud.com ief-edgeaccess ief-edgeaccess.cn-south-1.myhuaweicloud.com

ief-telemetry ief-telemetry.cn-south-1.myhuaweicloud.com swr swr.cn-south-1.myhuaweicloud.com

华东-上海一 ief-

placement ief-placement.cn-east-3.myhuaweicloud.com ief-edgeaccess ief-edgeaccess.cn-east-3.myhuaweicloud.com

ief-telemetry ief-telemetry.cn-east-3.myhuaweicloud.com swr swr.cn-east-3.myhuaweicloud.com

华东-上海二 ief-

placement ief2-placement.cn-east-2.myhuaweicloud.com ief-edgeaccess ief2-edgeaccess.cn-east-2.myhuaweicloud.com

ief-telemetry ief2-telemetry.cn-east-2.myhuaweicloud.com swr swr.cn-east-2.myhuaweicloud.com

(20)

4 使用开源 C 语言库连接 MQTT Broker

操作场景

MQTT是一种发布/订阅模式的消息协议,能够在硬件性能低下的远程设备以及网络状

况糟糕的情况下工作。

本文介绍一种开源的C语言库Eclipse Paho C Client Library连接使用IEF的内置MQTT Broker。

操作步骤

步骤1 准备一台Linux机器,下载源码。

git clone https://github.com/eclipse/paho.mqtt.c.git

或直接在https://github.com/eclipse/paho.mqtt.c页面下载zip包,然后解压。

步骤2 安装编译依赖工具。

Ubuntu系统执行如下命令。

apt-get install build-essential gcc make cmake cmake-gui cmake-curses-gui apt-get install fakeroot fakeroot devscripts dh-make lsb-release

(21)

yum install fakeroot fakeroot devscripts dh-make lsb-release yum install openssl-devel

yum install ninja-build 步骤3 修改示例程序代码。

在源码的“src/samples/ paho_cs_pub.c”文件中,增加如下行。

ssl_opts.enableServerCertAuth =0;

在“src/samples/paho_cs_sub.c”文件中增加如下行。

步骤4 编译示例程序。

mkdir /tmp/build.paho cd /tmp/build.paho

cmake -GNinja -DPAHO_BUILD_STATIC=TRUE -DPAHO_BUILD_SHARED=FALSE -DPAHO_WITH_SSL=TRUE -DPAHO_BUILD_SAMPLES=TRUE {paho.mqtt.c目录}

ninja package

其中 {paho.mqtt.c目录} 为paho.mqtt.c源码所在的目录,如“/root/work/

paho.mqtt.c”。

步骤5 进入编译之后的目录,将编译生成的二进制文件“paho_cs_pub”和“paho_cs_sub”

拷贝至边缘节点上。

cd /tmp/build.paho/src/samples/

步骤6 下载边缘节点证书。

1. 登录IEF控制台,在左侧选择“边缘资源 > 边缘节点”,在右侧单击边缘节点名 称,进入边缘节点详情页。选择“证书”页签,单击“添加证书”。

(22)

4-1 添加证书

2. 在弹出的窗口中输入证书名称,单击“确定”。

3. 将下载好的证书,拷贝至边缘节点,并解压。

步骤7 运行示例程序。

以发布消息到指定topic为示例,查看“paho_cs_pub”命令指导。

(23)

这条命令向内置MQTT Broker名为“aaa”的Topic发送了内容为“xxx”的消息,其中

“127.0.0.1:8883”为边缘节点内置MQTT Broker的地址,“/root/mqtt_cert/

xOEMIsYVpw_private_cert.crt”和“/root/mqtt_cert/

xOEMIsYVpw_private_cert.key”为边缘节点证书。

----结束

數據

表 1-1 边缘节点要求

參考文獻

相關文件

● Why is it generally a bad idea to “ ./configure && make && sudo make install ” in production server?... ● Workstation is

第一步:在 VMware 按下 Install VMwave Tools 按下之後系統就會開啟安裝畫面給

Dan-Gui finished Savoring the Mountains from a Boat in Yangshuo in middle age and therefore, the collection was not incorporated in his other two publications called

XAMPP is a completely free, easy to install Apache distribution.. containing MariaDB, PHP,

‡圖形使用者介面( graphical user interface GUI). ‡圖形使用者介面( graphical user

Jonathan Gottschall ,《大腦會說故 事》(The Storytelling Animal: How Stories Make Us Human)為此問題提 供解答.

root@ubuntu:~# apt-get install apache2 Reading package

– Each listener may respond to a different kind of  event or multiple listeners might may respond to event, or multiple listeners might may respond to