apacheflink将s3用于后端状态和检查点

juzqafwq  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(1066)

背景

我计划用s3来存储flink的检查站 FsStateBackend . 但不知怎的,我得到了以下错误。
错误

org.apache.flink.core.fs.UnsupportedFileSystemSchemeException: Could not find a file system implementation for scheme 's3'. The scheme is not directly supported by Flink and no Hadoop file system to support this scheme could be loaded.

flink版本:我使用的是flink 1.10.0版本。

0g0grzrc

0g0grzrc1#

我已经找到了解决上述问题的方法,所以我在这里列出了所需的步骤。

步骤

我们需要在 flink-conf.yaml 我在下面列出的文件。

state.backend: filesystem
state.checkpoints.dir: s3://s3-bucket/checkpoints/ #"s3://<your-bucket>/<endpoint>"
state.backend.fs.checkpointdir: s3://s3-bucket/checkpoints/ #"s3://<your-bucket>/<endpoint>"

s3.access-key: XXXXXXXXXXXXXXXXXXX #your-access-key
s3.secret-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx #your-secret-key

s3.endpoint: http://127.0.0.1:9000 #your-endpoint-hostname (I have used Minio)

完成第一步后,我们需要复制相应的( flink-s3-fs-hadoop-1.10.0.jar 以及 flink-s3-fs-presto-1.10.0.jar )jar文件从opt目录到flink的plugins目录。
e、 g:-->1。复制 /flink-1.10.0/opt/flink-s3-fs-hadoop-1.10.0.jar/flink-1.10.0/plugins/s3-fs-hadoop/flink-s3-fs-hadoop-1.10.0.jar //建议用于流化文件链接
2.复制 /flink-1.10.0/opt/flink-s3-fs-presto-1.10.0.jar/flink-1.10.0/plugins/s3-fs-presto/flink-s3-fs-presto-1.10.0.jar //建议用于检查点
将此添加到检查点代码中

env.setStateBackend(new FsStateBackend("s3://s3-bucket/checkpoints/"))

完成以上所有步骤后,如果flink已经在运行,请重新启动它。
注:
如果两者都用( flink-s3-fs-hadoop 以及 flink-s3-fs-presto )在Flink请用 s3p:// 特别针对 flink-s3-fs-presto 以及 s3a:// 为了 flink-s3-fs-hadoop 而不是 s3:// .
有关更多详细信息,请单击此处。

相关问题