文档首页 > > 用户指南> 作业管理> Flink作业管理>

创建Flink SQL边缘作业

创建Flink SQL边缘作业

分享
更新时间:2021/04/27 GMT+08:00

本章节介绍如何新建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实例,铂金版实例后续版本提供支持。

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

表1 参数说明

参数名

参数说明

JobManagerHeapSize

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

TaskManagerMemoryProcessSize

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

TaskManagerMemoryMetaSize

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

TaskManagerNetworkBufferNum

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作业”页面右上角单击“新建作业”,弹出“新建作业”对话框。

    图1 新建Flink SQL边缘作业

  3. 配置作业信息。

    表2 作业配置信息

    参数

    参数说明

    类型

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

    名称

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

    说明:

    作业名称必须是唯一的。

    描述

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

    模板名称

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

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

    标签

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

    说明:
    • 最多支持10个标签。
    • 一个“键”只能添加一个“值”。
    • 标签键:在输入框中输入标签键名称。
      说明:

      标签键的最大长度为36个字符 ,只能包含大小写字母,数字,中划线“-”,下划线“_”,中文,且首尾字符不能为空格。

    • 标签值:在输入框中输入标签值。
      说明:

      标签值的最大长度为43个字符,只能包含大小写字母,数字,中划线“-”,下划线“_”,点“.”中文,且首尾字符不能为空格。

  4. 单击“确,进入编辑页面。
  5. 编辑作业。

    根据需要编辑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. 设置作业运行参数。

    图2 设置Flink SQL边缘作业运行参数
    表3 作业运行参数说明

    参数

    参数说明

    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语句格式化后,需要重新编辑SQL语句。
    • 更多 > 名称和描述修改:修改作业名称和描述。
    • 更多 > 另存为:将新建作业另存为一个新作业。
    • 更多 > 设为模板:将新创建的作业设置为作业模板。
    • 更多 > 主题设置:设置页面主题,可以设置字体大小,自动换行和页面风格。
    • 更多 > 帮助:帮助中心,为用户提供SQL语法参考。

验证作业运行效果

  1. 在智能边缘平台中,登录任一节点(该节点需与边缘节点网络互通)。
  2. 使用以下命令发送数据到边缘节点。

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

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

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

    mosquitto_sub -h 边缘节点IP -t abcd

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

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问