DLI flink在边缘流计算上的实践(二)

举报
Yunz Bao 发表于 2020/11/19 20:33:45 2020/11/19
【摘要】 本文中我们将介绍DLI 边缘Flink的使用方法1. 前置动作创建华为云账户开通数据湖探索(DLI)服务开通智能边缘平台(IEF)服务注意:IEF服务必须具有Tenant Administrator权限才能运行边缘Flink作业。准备边缘节点,边缘节点需要满足一定的规格要求,具体请参见边缘节点规格要求。运行Flink作业,推荐规格不低于1核2GB内存。2. 边缘节点与Flink应用部署ste...

本文中我们将介绍DLI 边缘Flink的使用方法

1. 前置动作

  • 创建华为云账户

  • 开通数据湖探索(DLI)服务

  • 开通智能边缘平台(IEF)服务

    注意:IEF服务必须具有Tenant Administrator权限才能运行边缘Flink作业。

  • 准备边缘节点,边缘节点需要满足一定的规格要求,具体请参见边缘节点规格要求

    运行Flink作业,推荐规格不低于1核2GB内存。

2. 边缘节点与Flink应用部署

step1. 创建边缘节点和纳管边缘节点。具体操作步骤,请参见《智能边缘平台用户指南》中边缘节点

step2. 边缘节点上安装Mosquitto,详见:下载&安装Mosquitto

# Eular OS
yum -y install mosquitto
systemctl start mosquitto
systemctl enable mosquitto

step3. 登录IEF边缘市场,根据边缘节点系统版本选择Flink应用进行部署

image-20201119192013411image-20201119192013411image-20201119192013411.png

部署应用有以下注意点:

  • 通过系统模板部署应用时,容器规格不得小于默认值,否则会造成实例部署失败。

  • 应用名称需要以“edge-dli-”为前缀,以保证DLI侧能获取相关边缘节点信息。

  • 需要指定环境变量:PROJECT_ID(其值为用户账户对应项目的project_id,可以在控制台右上角“我的凭证”页面获取)。

  • 需要挂载容器 “/opt/flink/edgecsa” 目录到终端节点本地目录,赋予读写权限,以保证容器异常重启情况下,系统能够自动重新拉起Flink作业。。

  • 应用部署时,“容器网络”配置中“网络类型”选择“主机网络”,以保证容器应用能正常访问Mosquitto。

  • 当前版本仅支持专业版IEF实例,铂金版实例后续版本提供支持。

更详细的部署方法请见DLI服务资料:创建Flink SQL边缘作业

3. 创建边缘Flink作业

step1. 在DLI管理控制台的左侧导航栏中,单击“作业管理”>“Flink作业”,进入“Flink作业”页面。

step2. 在“Flink作业”页面右上角单击“新建作业”,弹出“新建作业”对话框。 img

zh-cn_image_0257971838.png

step3. 根据需要编辑Flink SQL边缘作业,处理边缘设备数据。

当前支持的DDL如下:

  • 输入输出流:edgehub;用户自定义

  • 维表:RDS(MySQL、gaussdb100)

相关SQL语句请参考《数据湖探索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"
);
 
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;

step4. 单击“语义校验”,确保语义校验成功。

  • 只有语义校验成功后,才可以执行“调试”、“提交”或“启动”作业的操作。

  • 如果校验成功,提示“SQL语义校验成功”。

  • 如果校验失败,会在错误的SQL语句前面显示红色的“X”记号,鼠标移动到“X”号上可查看详细错误,请根据错误提示修改SQL语句。

step5. 设置作业运行参数。指定之前部署的Flink应用所在边缘节点,点击创建IEF消息通道,可以打通DLI到边缘节点的网络。

可以通过上传用户UDF实现更多自定义功能

zh-cn_image_0257972222.pngimg

step6. 单击“提交”,进入“作业配置清单”页面,单击“确认”,将作业提交并启动。

提交作业后,系统将自动跳转到“作业管理”页面,新创建的作业将显示在作业列表中,在“状态”列中可以查看作业状态。作业提交成功后,状态将由“提交中”变为“运行中”。运行结束显示“已完成”。

如果作业状态为“提交失败”或“运行异常”,表示作业提交或运行失败。用户可以在作业列表中的“状态”列中,将鼠标移动到状态图标上查看错误信息,单击imgzh-cn_image_0207970897.png可以复制错误信息。根据错误信息解决故障后,重新提交。


4. 验证作业运行效果

step1. 在智能边缘平台中,登录任一节点(该节点需与边缘节点网络互通)。

step2. 使用以下命令发送数据到边缘节点。

mosquitto_pub -h 边缘节点IP -t abc -m '{"student":{"score":90,"name":"1bc2"}}';

“abc”为作业中定义输入流的topic名称。

step3. 打开新的窗口,使用命令监听输出。输入以下命令,可查询到成绩大于或者等于80的学生姓名和成绩。

mosquitto_sub -h 边缘节点IP -t abcd

“abcd”为作业中定义输出流的topic名称。


通过浏览器访问【边缘节点IP:8081】,可以打开FlinkUI,查看作业运行详情。

image-20201119203000789image-20201119203000789.png


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。