DLI flink在边缘流计算上的实践(二)
本文中我们将介绍DLI 边缘Flink的使用方法
1. 前置动作
创建华为云账户
开通数据湖探索(DLI)服务
开通智能边缘平台(IEF)服务
注意:IEF服务必须具有Tenant Administrator权限才能运行边缘Flink作业。
准备边缘节点,边缘节点需要满足一定的规格要求,具体请参见。
运行Flink作业,推荐规格不低于1核2GB内存。
2. 边缘节点与Flink应用部署
step1. 创建边缘节点和纳管边缘节点。具体操作步骤,请参见《智能边缘平台用户指南》中。
step2. 边缘节点上安装Mosquitto,详见:
# Eular OS
yum -y install mosquitto
systemctl start mosquitto
systemctl enable mosquitto
step3. 登录IEF边缘市场,根据边缘节点系统版本选择Flink应用进行部署
部署应用有以下注意点:
通过系统模板部署应用时,容器规格不得小于默认值,否则会造成实例部署失败。
应用名称需要以“edge-dli-”为前缀,以保证DLI侧能获取相关边缘节点信息。
需要指定环境变量:PROJECT_ID(其值为用户账户对应项目的project_id,可以在控制台右上角“我的凭证”页面获取)。
需要挂载容器 “/opt/flink/edgecsa” 目录到终端节点本地目录,赋予读写权限,以保证容器异常重启情况下,系统能够自动重新拉起Flink作业。。
应用部署时,“容器网络”配置中“网络类型”选择“主机网络”,以保证容器应用能正常访问Mosquitto。
当前版本仅支持专业版IEF实例,铂金版实例后续版本提供支持。
更详细的部署方法请见DLI服务资料:
3. 创建边缘Flink作业
step1. 在DLI管理控制台的左侧导航栏中,单击“作业管理”>“Flink作业”,进入“Flink作业”页面。
step2. 在“Flink作业”页面右上角单击“新建作业”,弹出“新建作业”对话框。
step3. 根据需要编辑Flink SQL边缘作业,处理边缘设备数据。
当前支持的DDL如下:
输入输出流:edgehub;用户自定义
维表:RDS(MySQL、gaussdb100)
相关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实现更多自定义功能
step6. 单击“提交”,进入“作业配置清单”页面,单击“确认”,将作业提交并启动。
提交作业后,系统将自动跳转到“作业管理”页面,新创建的作业将显示在作业列表中,在“状态”列中可以查看作业状态。作业提交成功后,状态将由“提交中”变为“运行中”。运行结束显示“已完成”。
如果作业状态为“提交失败”或“运行异常”,表示作业提交或运行失败。用户可以在作业列表中的“状态”列中,将鼠标移动到状态图标上查看错误信息,单击可以复制错误信息。根据错误信息解决故障后,重新提交。
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名称。
- 点赞
- 收藏
- 关注作者
评论(0)