-
Notifications
You must be signed in to change notification settings - Fork 103
文件系统
wangqi edited this page Jun 18, 2022
·
6 revisions
在大数据体系中,需要稳定可靠、高吞吐、廉价的存储系统支持海量数据的存储和访问,而 HDFS 和对象存储以其海量、弹性、低价的高性能存储支撑了大数据、机器学习体系,为数据的管理、分析、归档、备份提供可靠支持。
在 flink 中,文件系统负责承担了很多重要的功能,如 checkpoint 和 savepoint,读取和存储数据。flink 提供了文件系统抽象和实现,如本地机器的文件系统,HDFS 兼容的存储系统,对象存储如 S3、OSS 等。
scaleph 系统也需要文件系统存储任务程序,如 jar 包,sql 文件,udf 等。
scaleph 集成 flink 的 FileSystem
抽象和其实现以满足自身的存储需要。
- 文档链接:Checkpoints
- 配置链接:Checkpointing
flink checkpoint 的实现有 2 个:
-
JobManagerCheckpointStorage
。存储在 JobManager 的堆内存中,当未配置 checkpoint 存储路径时启用。 -
FileSystemCheckpointStorage
。
state.checkpoints.dir: hdfs:///checkpoints/
- 文档链接:State Backends
- 配置链接:Checkpoints and State Backends,
state backend 的实现也有 2 个:
-
HashMapStateBackend
。默认启用,将 state 数据存储在堆内存中。 -
EmbeddedRocksDBStateBackend
。支持增量 checkpoint,将数据存储在 RocksDB 中。
hashmap 配置:
state.backend: hashmap
state.checkpoints.dir: file:///checkpoint-dir/
rocksdb 配置:
state.backend: rocksdb
state.backend.incremental: true
state.checkpoints.dir: hdfs:///checkpoints/
- 文档链接:Savepoints
- 配置链接:Checkpoints and State Backends
state.savepoints.dir: hdfs:///flink/savepoints
- 文档链接:High Availability
- 配置链接:High Availability
high-availability: org.apache.flink.kubernetes.highavailability.KubernetesHaServicesFactory
high-availability.storageDir: s3://flink/recovery
- checkpoint。
{home}/flink/namespaces/{namespace}/jobs/{projectId}/{jobId}/checkpoints/
- state backends。
{home}/flink/namespaces/{namespace}/jobs/{projectId}/{jobId}/state-backends/
- savepoint。
{home}/flink/namespaces/{namespace}/jobs/{projectId}/{jobId}/savepoints/
- ha。
{home}/flink/namespaces/{namespace}/jobs/{projectId}/{jobId}/ha/
flink,seatunnel 等 release 包存储目录:
- flink。
{home}/release/flink/
- seatunnel。
{home}/release/seatunnel/
任务和 flink 运行依赖,如 jdbc 驱动。
- dependency。
{home}/dependency/
任务存储。比如 artifact 包任务,sql + udf 任务。
- artifact。
{home}/job/artifact/
- sql。
{home}/job/sql/
- udf。
{home}/job/udf/
- 多文件系统支持。目前 scaleph 以 s3, hdfs 这种分布式,持久存储的支持为主,对于文件系统中存储的数据,往往需要先下载到本地,使用完毕后删除。文件系统现需要同时支持远端和本地,当本地存在时,自动使用本地存储的文件,不存在时尝试从远端下载。
- 云原生文件系统支持。ceph,juicefs,alluxio,curve 等云原生文件系统支持。通过 posix 标准接口直接将远端文件挂载到容器中。
Welcome to Scaleph wiki!