StreamPark 总体组件栈架构如下, 由 streampark-core 和 streampark-console 两个大的部分组成 , streampark-console 是一个非常重要的模块, 定位是一个综合实时数据平台流式数仓平台, 低代码 ( Low Code ), Flink & Spark 任务托管平台,可以较好的管理 Flink 任务,集成了项目编译、发布、参数配置、启动、savepoint,火焰图 ( flame graph ),Flink SQL,监控等诸多功能于一体,大大简化了 Flink 任务的日常操作和维护,融合了诸多最佳实践。其最终目标是打造成一个实时数仓,流批一体的一站式大数据解决方案

StreamPark Archite

streampark-console 提供了开箱即用的安装包,安装之前对环境有些要求,具体要求如下:

环境要求

要求 版本 是否必须 其他事项
操作系统 Linux 不支持Window系统
JAVA 1.8+
MySQL 5.6+ 默认使用H2数据库,推荐使用 MySQL
Flink 1.12.0+ Flink version >= 1.12
Hadoop 2+ 可选,如果部署flink on yarn 则需要hadoop环境.

目前 StreamPark 对 Flink 的任务发布,同时支持 Flink on YARNFlink on Kubernetes 两种模式。

Hadoop

使用 Flink on YARN,需要部署的集群安装并配置 Hadoop的相关环境变量,如你是基于 CDH 安装的 hadoop 环境, 相关环境变量可以参考如下配置:

  1. export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop #hadoop 安装目录
  2. export HADOOP_CONF_DIR=/etc/hadoop/conf
  3. export HIVE_HOME=$HADOOP_HOME/../hive
  4. export HBASE_HOME=$HADOOP_HOME/../hbase
  5. export HADOOP_HDFS_HOME=$HADOOP_HOME/../hadoop-hdfs
  6. export HADOOP_MAPRED_HOME=$HADOOP_HOME/../hadoop-mapreduce
  7. export HADOOP_YARN_HOME=$HADOOP_HOME/../hadoop-yarn

Kubernetes

使用 Flink on Kubernetes,需要额外部署/或使用已经存在的 Kubernetes 集群,请参考条目: StreamPark Flink-K8s 集成支持

安装

下载 streampark 安装包,解包后安装目录如下

  1. .
  2. streampark-console-service-1.2.1
  3. ├── bin
  4. ├── startup.sh //启动脚本
  5. ├── setclasspath.sh //java 环境变量相关的脚本 ( 内部使用,用户无需关注 )
  6. ├── shutdown.sh //停止脚本
  7. ├── yaml.sh //内部使用解析 yaml 参数的脚本 ( 内部使用,用户无需关注 )
  8. ├── conf
  9. ├── application.yaml //项目的配置文件 ( 注意不要改动名称 )
  10. ├── flink-application.template //flink 配置模板 ( 内部使用,用户无需关注 )
  11. ├── logback-spring.xml //logback
  12. └── ...
  13. ├── lib
  14. └── *.jar //项目的 jar 包
  15. ├── client
  16. └── streampark-flink-sqlclient-1.0.0.jar //Flink SQl 提交相关功能 ( 内部使用,用户无需关注 )
  17. ├── script
  18. ├── schema
  19. ├── mysql-schema.sql // mysql的ddl建表sql
  20. └── pgsql-schema.sql // pgsql的ddl建表sql
  21. ├── data
  22. ├── mysql-data.sql // mysql的完整初始化数据
  23. └── pgsql-data.sql // pgsql的完整初始化数据
  24. ├── upgrade
  25. ├── 1.2.3.sql //升级到 1.2.3版本需要执行的升级sql
  26. └── 2.0.0.sql //升级到 2.0.0版本需要执行的升级sql
  27. ...
  28. ├── logs //程序 log 目录
  29. ├── temp //内部使用到的临时路径,不要删除
初始化表结构

目前支持mysql,pgsql, h2(默认,不需要执行任何操作),sql脚本目录如下:

  1. ├── script
  2. ├── schema
  3. ├── mysql-schema.sql // mysql的ddl建表sql
  4. └── pgsql-schema.sql // pgsql的ddl建表sql
  5. ├── data
  6. ├── mysql-data.sql // mysql的完整初始化数据
  7. └── pgsql-data.sql // pgsql的完整初始化数据
  8. ├── upgrade
  9. ├── 1.2.3.sql //升级到 1.2.3版本需要执行的升级sql
  10. └── 2.0.0.sql //升级到 2.0.0版本需要执行的升级sql

如果是初次安装, 需要连接对应的数据库客户端依次执行 schemadata 目录下对应数据库的脚本文件即可, 如果是升级, 则执行对应的版本号的sql即可.

修改配置

安装解包已完成,接下来准备数据相关的工作

修改连接信息

进入到 conf 下,修改 conf/application.yml,找到 spring 这一项,找到 profiles.active 的配置,修改成对应的信息即可,如下

  1. spring:
  2. profiles.active: mysql #[h2,pgsql,mysql]
  3. application.name: StreamPark
  4. devtools.restart.enabled: false
  5. mvc.pathmatch.matching-strategy: ant_path_matcher
  6. servlet:
  7. multipart:
  8. enabled: true
  9. max-file-size: 500MB
  10. max-request-size: 500MB
  11. aop.proxy-target-class: true
  12. messages.encoding: utf-8
  13. jackson:
  14. date-format: yyyy-MM-dd HH:mm:ss
  15. time-zone: GMT+8
  16. main:
  17. allow-circular-references: true
  18. banner-mode: off

在修改完 conf/application.yml 后, 还需要修改 config/application-mysql.yml 中的数据库连接信息:

Tips: 由于Apache 2.0许可与Mysql Jdbc驱动许可的不兼容,用户需要自行下载驱动jar包并放在 $STREAMPARK_HOME/lib 中,推荐使用8.x版本,下载地址apache maven repository

  1. spring:
  2. datasource:
  3. username: root
  4. password: xxxx
  5. driver-class-name: com.mysql.cj.jdbc.Driver # 请根据mysql-connector-java版本确定具体的路径,例如:使用5.x则此处的驱动名称应该是:com.mysql.jdbc.Driver
  6. url: jdbc:mysql://localhost:3306/streampark?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
修改workspace

进入到 conf 下,修改 conf/application.yml,找到 streampark 这一项,找到 workspace 的配置,修改成一个用户有权限的目录

  1. streampark:
  2. # HADOOP_USER_NAME 如果是on yarn模式( yarn-prejob | yarn-application | yarn-session)则需要配置 hadoop-user-name
  3. hadoop-user-name: hdfs
  4. # 本地的工作空间,用于存放项目源码,构建的目录等.
  5. workspace:
  6. local: /opt/streampark_workspace # 本地的一个工作空间目录(很重要),用户可自行更改目录,建议单独放到其他地方,用于存放项目源码,构建的目录等.
  7. remote: hdfs:///streampark # support hdfs:///streampark/ 、 /streampark 、hdfs://host:ip/streampark/
启动

进入到 bin 下直接执行 startup.sh 即可启动项目,默认端口是10000,如果没啥意外则会启动成功,打开浏览器 输入http://$host:10000 即可登录

  1. cd streampark-console-service-1.0.0/bin
  2. bash startup.sh

相关的日志会输出到streampark-console-service-1.0.0/logs/streampark.out

系统登录

经过以上步骤,即可部署完成,可以直接登录系统

StreamPark Login

默认密码: admin / streampark

系统配置

进入系统之后,第一件要做的事情就是修改系统配置,在菜单/StreamPark/Setting 下,操作界面如下:

StreamPark Settings

主要配置项分为以下几类

  • System Setting
  • Alert Setting
  • Flink Home
  • Flink Cluster

System Setting

当前系统配置包括:

  • Maven配置
  • Docker环境配置
  • 警告邮箱配置
  • k8s Ingress 配置

Alert Setting

Alert Email 相关的配置是配置发送者邮件的信息,具体配置请查阅相关邮箱资料和文档进行配置

这里配置全局的 Flink Home,此处是系统唯一指定 Flink 环境的地方,会作用于所有的作业

特别提示: 最低支持的 Flink 版本为 1.12.0, 之后的版本都支持

Flink 当前支持的集群模式包括:

  • Standalone 集群
  • Yarn 集群
  • Kubernetes 集群