-
Notifications
You must be signed in to change notification settings - Fork 104
功能图谱
Scaleph 平台功能全景图
基于 quartz 集群模式实现的任务调度。
待实现
scaleph 日志功能主要包括 4 部分:
- 用户登录日志
- 用户操作日志
- 系统站内信
- 调度日志
系统日志可以暴露系统运行细节,让管理员和用户了解系统内部发生了什么。
scaleph 将日志信息存入独立的日志数据库,供用户查看和检索。
现代系统多是分布式系统,日志信息会散落在集群内的不同机器上。而如今众多的日志采集系统可以将散落在不同机器上的日志数据,汇总到集中的日志存储系统中,供开发人员查看、检索。
但是日志采集系统采集的日志信息是没有上下文信息的,事件的先后顺序,触发和结果都需要开发者自己去分析获取,提供给系统用户查看仍需要二次加工处理。
大部分调度系统在实现日志白屏的功能时,日志数据会确保落在同一台机器上,这样日志数据会以独立的日志文件形式输出到本地磁盘中,也有的调度系统并未采用独立的日志文件,而是 sqlite 这种轻量级嵌入式的数据库存储日志信息。
因为调度日志过于庞大,无论是独立的日志文件还是 sqlite 都不具备 ELK 这种日志定期归档和清除的功能,很多调度系统在上线不久后都会面临第一个问题:调度日志积攒过多。
现如今分布式文件系统的流行,也有调度系统开始将调度日志直接写入分布式文件系统。
暂时无用
scaleph 对于存储的需求都是围绕 flink 任务运维提出的。
- flink 任务运维。任务运行时 checkpoint 和 savepoint 需求。
- 任务提交。
- flink 集群只提供 core 的 jar 包,不提供 connector 的 jar 包。
- 插件。在
plugins
目录下存放着 flink 的插件,flink 集群在启动时会自动加载plugins
目录下的插件。但是 release 包并没有把所有的插件都预置在plugins
目录下,比如 FileSystem 的插件实现放在了opt
目录,如果要启用需要将对应的 jar 包按照 flink 加载 plugins 的规则放置在plugins
目录下。 - 任务 jar 包。seatunnel 作为一个 flink 的任务 jar 包,会以 jar 任务的形式提交。
- udf 包。
- seatunnel。
- config 文件。
- connector jar 包,以及 connector 额外依赖的 jar 包,如 JDBC 驱动。connector jar 是 dev 分支的新功能,目前并未发布。
flink 的 FileSystem 内置了本地文件的实现,而对于分布式文件系统如 HDFS,S3,OSS 等实现则位于 opt
目录下。
如果想要将 checkpoint 和 savepoint 存储到分布式文件系统中,则需预先配置对应的 FileSystem 插件实现。
flink 任务提交有多种方式:
resource provider | session | per-job | application |
---|---|---|---|
standalone | 支持 | 不支持 | 支持 |
YARN | 支持 | 支持(已废弃) | 支持 |
Native Kubernetes | 支持 | 不支持 | 支持 |
对于 session 形式的提交,flink 集群已经预先创建,只需要提供 任务 jar 或 udf 包即可。
使用 YARN 作为资源管理时,提交 per-job 或 application 形式任务时,需提供 flink 的 release 包供集群创建。release 包可以在本地和 任务 jar 时一起上传,也可以提前上传至 HDFS 中,这样提交任务时只需要提交任务 jar 包。
使用 Native Kubernetes 作为资源管理时,提交 application 形式任务时,用户需将 flink 和任务 jar 包制成镜像,flink-kubernetes 客户端直接向 kubernetes 请求资源,拉起 pod 运行任务。
提交 seatunnel 任务时依据不同的资源管理和部署方式,seatunnel jar 包的处理也有所不同。
暂时无用
Welcome to Scaleph wiki!