运行FlinkSql作业
用户可将自己开发的程序提交到MRS中,执行程序并获取结果,本章节指导您如何在MRS集群中提交一个FlinkSql作业。
FlinkSql作业用于查询和分析数据,包括SQL语句和Script脚本两种形式。如果SQL语句涉及敏感信息,也可使用脚本文件方式提交。
约束与限制
MRS 3.6.0及之后版本的集群支持通过MRS管理控制台提交FlinkSql作业。
前提条件
- 用户已经将作业所需的程序包和数据文件上传至OBS或HDFS文件系统中。
- 如果作业程序需要读取以及分析OBS文件系统中的数据,需要先配置MRS集群的存算分离,请参考配置MRS集群存算分离。
提交作业
用户可通过管理控制台在线创建并运行作业,也可以通过MRS集群的FlinkServer WebUI在线编辑开发Flink作业。
- 登录MRS管理控制台。
- 选择“现有集群”,选中一个运行中的集群并单击集群名称,进入集群概览信息页面。
- 在“概览”页签中,单击“IAM用户同步”右侧的“同步”进行IAM用户同步。
集群开启Kerberos认证时需执行该步骤,若集群未开启Kerberos认证,无需执行本步骤。
IAM用户同步完成后,请等待5分钟,再进行提交作业,更多IAM用户同步说明请参考IAM用户同步MRS集群说明。
- 单击“作业管理”,在作业列表界面单击“添加”。
- “作业类型”选择“FlinkSql”并参考表1配置FlinkSql作业信息。
表1 作业配置信息 参数
描述
示例
作业名称
作业名称,只能由字母、数字、中划线和下划线组成,并且长度为1~64个字符。
FlinkSql
SQL类型
SQL语句提交类型。
- SQL:直接运行手动输入的SQL语句。
- Script:以加载HDFS或者OBS中的SQL脚本文件运行SQL。
SQL
SQL语句
“SQL类型”参数为“SQL”时参数有效,请输入待运行的SQL语句,确保输入语句正确。
如果同时需要提交多条语句并执行,可使用“;”分隔不同语句。
-
SQL文件
“SQL类型”参数为“Script”时参数有效,待执行SQL文件的路径,可直接手动输入地址路径,也可单击“HDFS”或者“OBS”选择文件。
- 路径地址最多为1023字符,不能包含;|&>,<'$特殊字符,且不可为空或全空格。
- OBS程序路径地址以“obs://”开头,HDFS程序路径地址以“hdfs://hacluster”开头,例如“hdfs://hacluster/user/XXX.jar”。
- FlinkScript文件需要以“.sql”结尾。
obs://wordcount/program/test.sql
运行程序参数
可选参数,为本次执行的作业配置相关优化参数(例如线程、内存、CPU核数等),用于优化资源使用效率,提升作业的执行性能。
FlinkSql作业常用的运行程序参数如表2所示,可根据执行程序及集群资源情况进行配置。
-
服务配置参数
可选参数,用于为本次执行的作业修改服务配置参数。
该参数的修改仅适用于本次执行的作业,如需对集群永久生效,请参考修改MRS集群组件配置参数进行集群组件配置参数的修改。
如需添加多个参数,请单击右侧
增加。例如增加以下服务配置参数:
- fs.obs.access.key:通过AK/SK方式访问OBS时访问OBS的密钥ID。
- fs.obs.secret.key:通过AK/SK方式访问OBS时访问OBS与密钥ID对应的密钥。
-
- 确认作业配置信息,单击“确定”,完成作业的新增。
- 作业提交成功中,可在作业列表中查看作业运行状态及执行结果,等待作业状态变为“已完成”,可查看相关程序分析结果。
FlinkServer WebUI提供基于Web的可视化开发平台,用户只需要编写SQL即可开发作业,极大降低作业开发门槛。同时通过作业平台能力开放,支持业务人员自行编写SQL开发作业来快速应对需求,大大减少Flink作业开发工作量。
更多FlinkServer WebUI作业操作指导请参考运行FlinkSql作业。
- 企业级可视化运维:运维管理界面化、作业监控、作业开发Flink SQL标准化等。
图1 可视化运维
- 快速建立集群连接:通过集群连接功能配置访问一个集群,需要客户端配置、用户认证密钥文件。
- 可视化开发平台:支持自定义输入/输出映射表,满足不同输入来源、不同输出目标端的需求。
- 图形化作业管理:简单易用。
图2 图形化作业管理
相关文档
- 通过管理控制台提交作业后,每一条作业都支持查看日志,具体操作请参见查看MRS作业详情和日志。
- 开启Kerberos认证的集群在提交作业时,未进行IAM用户同步报错处理方法请参见提交作业时系统提示当前用户在Manager不存在如何处理?。
- 作业提交后,查看指定Yarn任务日志的具体操作请参见如何查看指定Yarn任务的日志?。