• 沒有找到結果。

7.2 Flink 作业管理

7.2.7 创建 Flink SQL 边缘作业

本章节介绍如何新建Flink SQL边缘作业。Flink SQL边缘作业是一种处理边缘设备产生 大量的数据时,为了减少数据上云的数据量或提高数据处理实时性,在靠近数据产生 的地方对其进行分析处理的作业。

该作业是数据湖探索与智能边缘平台结合,通过在边缘节点上部署系统提供的流计算 应用,将Flink计算能力从云端延伸到边缘。然后通过数据湖探索编辑Flink作业并下发 到边缘执行,可以帮助用户在边缘快速实现对流数据的实时、快速、准确地分析处 理。

前提条件

● 已开通智能边缘平台服务(IEF)。

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

● 已成功部署边缘流计算应用。具体操作步骤,请参见《智能边缘平台用户指南》

中应用部署。

● IEF服务必须具有Tenant Administrator权限才能运行作业。

● 创建Flink SQL边缘作业前,请购买边缘鉴权码。边缘鉴权码的购买与使用详见购 买边缘鉴权码。

注意事项

部署边缘应用时,需要注意以下几点:

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

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

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

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

● 需要在边缘节点部署Mosquitto软件,以保证容器能正常收发消息。mosquitto软 件的下载请参见:https://mosquitto.org/download/。

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

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

● 创建作业提交任务前,建议先开通云审计服务,用于记录与DLI服务相关的操作事 件,便于日后的查询、审计和回溯。云审计服务支持的DLI操作列表详见云审计服 务支持的DLI操作列表说明。

关于如何开通云审计服务以及如何查看追踪事件,请参考《云审计服务快速入 门》中的相关章节。

边缘流计算应用部署时支持通过容器环境变量自定义Flink部分参数配置,支持的参数 列表如下:

7-12 参数说明

参数名 参数说明

JobManagerHeapSize Jobmanager堆内存大小,默认值:1024m TaskManagerMemory

ProcessSize TaskManager进程内存大小,默认值:2048m TaskManagerMemory

MetaSize TaskManager元空间内存大小,默认值:256m TaskManagerNetwork

BufferNum TaskManager网络缓存数,默认值:2048 NumberOfTaskSlots TaskManager task slot数量,默认值:1 RestartStrategy 重启策略,默认值:fixed-delay

RestartAttemptsNum 重启次数,默认值:3 RestartInterval 重启间隔,默认值:10s

TimeZone 时区,linux系统标准格式,默认值:Asia/Shanghai

创建 Flink SQL 边缘作业

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

步骤2 在“Flink作业”页面右上角单击“新建作业”,弹出“新建作业”对话框。

7-15 新建 Flink SQL 边缘作业

步骤3 配置作业信息。

7-13 作业配置信息

参数 参数说明

类型 选择“Flink Edge SQL”:用户通过编辑SQL语句来启动作业。

名称 作业名称,只能由字母、中文、数字、中划线和下划线组成,并且长 度为1~57字节。

说明

作业名称必须是唯一的。

描述 作业的相关描述,且长度为0~512字节。

模板名称 当编辑器选择“SQL编辑器”时,该参数有效。

用户可以选择样例模板或自定义的作业模板。关于模板的详细信息,

请参见Flink模板管理。

参数 参数说明

标签 使用标签标识云资源。包括“标签键”和“标签值”。如果您需要使 用同一标签标识多种云资源,即所有服务均可在标签输入框下拉选择 同一标签,建议在标签管理服务(TMS)中创建预定义标签。具体请 参考《标签管理服务用户指南》。

根据需要编辑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;

步骤6 单击“语义校验”,确保语义校验成功。

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

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

● 如果校验失败,会在错误的SQL语句前面显示红色的“X”记号,鼠标移动到

“X”号上可查看详细错误,请根据错误提示修改SQL语句。

步骤7 设置作业运行参数。

7-16 设置 Flink SQL 边缘作业运行参数

7-14 作业运行参数说明

参数 参数说明

CU数量 CU数量为DLI的计算单元数量和管理单元数量总和,CU也是 DLI的计费单位,1CU=1核4G。

管理单元 管理单元CU数量。

并行数 最并行数是指同时运行Flink作业的最大任务数。

说明最大并行数不能大于计算单元CU数的4倍。

所属边缘节点 选择作业所属的边缘节点。

● 边缘节点是您自己的边缘计算设备,用于运行边缘应用,

处理您的数据,并安全、便捷地和云端应用进行协同。边 缘应用是您需要在边缘节点上运行的功能模块。

● 数据湖探索支持选择多个边缘节点部署作业,通过作业所 属边缘节点的绑定,将数据湖探索Flink作业与IEF服务进行 结合。

IEF消息通道 创建IEF侧边云消息。

UDF Jar 用户自定义UDF文件,可通过“程序包管理”功能上传到数 据湖探索服务使用。

步骤8 单击“创建IEF消息通道”,创建IEF侧边云消息。

步骤9 单击“保存”,保存作业和相关参数。

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

● 格式化:将SQL格式化,将SQL语句格式化后,需要重新编辑SQL语句。

● 设为模板:将新创建的作业设置为作业模板。

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

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

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

mosquitto_sub -h 边缘节点IP -t abcd

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

----结束