说明:该部分旨在通过简单的操作步骤,体验使用StreamPark平台提交flink作业的便捷流程。
配置FLINK_HOME
点击”OK”,保存
配置Flink Cluster
根据flink 部署模式 以及 资源管理方式,StreamPark 支持以下6种作业模式
- Standalone Session
- Yarn Session
- Yarn Per-job
- Yarn Application
- K8s Session
- K8s Application
本次选取较为简单的 Standalone Session 模式(下图绿色连线),快速上手。
服务器启动 flink Standalone Session
start-cluster.sh
页面访问:http://hadoop:8081/
配置Flink Cluster
创建作业
主要参数
- Development Mode: 选择 “Flink SQL”
- Execution Mode: 选择 “remote”
- Flink Version: 选择 “flink-1.14”, 即 “1.1 配置FLINK_HOME”里面配置的
- Flink Cluster: 选择 “myStandalonSession”, 即“1.2 配置FLINK Cluster”里面配置的
- Flink SQL: 详见下面示例
- Application Name: 作业名称
创建作业
保存作业
点击 蓝色“Submit”按钮,提交作业
构建作业
构建成功
启动作业
启动检查点设置
提交作业
查看作业状态
通过Apache StreamPark™看板查看
StreamPark dashboard
查看作业详情
查看原生 flink web ui
至此,一个使用StreamPark平台提交flink job的流程基本完成。下面简单总结下StreamPark平台管理flink作业的大致流程。
Apache StreamPark™平台管理flink job的流程
通过 StreamPark 平台 停止、修改、删除 flink job 相对简单,大家可自行体验,需要说明的一点是:若作业为running状态,则不可删除,需先停止。
Apache StreamPark™系统模块简介
系统设置
菜单位置
User Management
用于管理StreamPark平台用户
Token Management
允许用户以Restful api形式操作flink job
curl -X POST '/flink/app/cancel' \
-H 'Authorization: 69qMW7reOXhrAh29LjPWwwP+quFqLf++MbPbsB9/NcTCKGzZE2EU7tBUBU5gqG236VF5pMyVrsE5K7hBWiyuLuJRqmxKdPct4lbGrjZZqkv5lBBYExxYVMIl+f5MZ9dbqqslZifFx3P4A//NYgGwkx5PpizomwkE+oZOqg0+c2apU0UZ9T7Dpnu/tPLk9g5w9q+6ZS2p+rTllPiEgyBnSw==' \
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
--data-urlencode 'savePoint=' \
--data-urlencode 'id=100001' \
--data-urlencode 'savePointed=false' \
--data-urlencode 'drain=false' \
-i
Role Management
用户角色:目前有2种,develop 和 admin。
Team Management
团队:用于区分管理企业不同团队的作业。
Member Management
(团队)成员管理
Menu Management
管理系统菜单
Apache StreamPark™菜单模块
Project
StreamPark结合代码仓库实现CICD
使用时,点击 “+ Add new ”,配置repo信息,保存。
Application
核心模块:用于对 flink job 全生命周期(创建、构建、启动、停止、删除等)管理。
Variable
变量管理:管理变量,可在Application 作业创建时使用。
Setting
System Setting
用于系统配置:Maven 、 Docker 、 alert email、Ingress
Alert Setting
支持多种告警通知模式
Flink Home
【待完善】可对flink作业进行一些操作,如对flink sql校验等
Flink Cluster
- Session模式执行flink作业,根据资源管理方式不同,可以分为3种:Standalone、Yarn、K8s
- 【待完善】应用场景:资源充足,作业之间隔离性需求不是很强的场景
- 关于session模式,详见:https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/deployment/overview/#session-mode
原生flink 与 Apache StreamPark™关联使用
【待完善】其实,个人理解,StreamPark一大特点是对flink原生作业的管理模式在用户使用层面进行了优化,使得用户能利用该平台快速开发、部署、运行、监控flink作业。所以,想表达的意思是:如果用户对原生flink比较熟悉的话,那StreamPark使用起来就会更加得心应手。
flink部署模式
下面内容摘自 张利兵 老师 极客时间专栏 《Flink核心技术与实战》
原生flink集群部署模式
如何在Apache StreamPark™中使用
Session 模式
- 配置 Flink Cluster
- 创建作业时在 Execution Mode选择对应资源管理器的model 和 已经建立好的Flink Cluster
Application 模式
设置作业参数
原生flink作业参数
官网:https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/deployment/config/
原生提交命令(含参数)
flink run-application -t yarn-application \
-Dyarn.provided.lib.dirs="hdfs://myhdfs/my-remote-flink-dist-dir" \
hdfs://myhdfs/jars/my-application.jar
如何在Apache StreamPark™中使用
创建 或 修改 作业时,在“Dynamic Properties”里面按指定格式添加即可
告警策略
【待完善】
原生flink重启机制
参考:https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/ops/state/task_failure_recovery/
如何在Apache StreamPark™中使用
【待完善】一般在作业失败或出现异常时,会触发告警
- 配置告警通知
- 创建 或 修改 作业时,在”Fault Alert Template”、“CheckPoint Failure Options”里面配置即可
cp/sp
【待完善】
原生flink checkpoint 和 savepoint
cp: https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/dev/datastream/fault-tolerance/checkpointing/ sp: https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/ops/state/savepoints/
如何在Apache StreamPark™中配置savepoint
当停止作业时,可以让用户设置savepoint
查看savepoint
如何在Apache StreamPark™中由指定savepoint恢复作业
启动作业时,会让选择
作业状态
【待完善】
原生flink 作业状态
Apache StreamPark™中的作业状态
【待完善】
作业详情
原生flink作业详情
通过 “Apache Flink Dashboard”查看
Apache StreamPark™中作业详情
同时在k8s模式下的作业,StreamPark还支持启动日志实时展示,如下
如何与第三方系统集成
原生flink如何与第三方系统集成
原生flink提供了 rest api 参考:https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/ops/rest_api/
Apache StreamPark™如何与第三方系统集成
也提供了Restful Api,支持与其他系统对接, 比如:开启作业 启动|停止 restapi 接口