我正在使用flink版本1.7.2,我正在尝试使用像对象一样的S3 存储EMC ECS( https://www.emc.com/techpubs/ecs/ecs_s3_supported_features-1.htm)。
我正在使用flink-s3-fs-hadoop-1.7.2.jar文件作为对 s3文件系统,我将其放置在lib文件夹下,并且 可用于在其类路径中进行链接。我已经按照以下flink文档配置了flink集群以与S3进行通信:https://ci.apache.org/projects/flink/flink-docs-stable/ops/deployment/aws.html
我的flink-conf.yaml看起来像这样:
s3.endpoint: SU73ECSG1P1d.***.COM:9021
s3.access-key: vdna_np_user
security.ssl.rest.enabled: false
web.timeout: 10000
s3.secret-key: J***
我对statebackend的代码是这样的:
env.setStateBackend(new FsStateBackend(“ s3:// aip_featuretoolkit / checkpoints /”))
我的s3实例中有一个名为aip_featuretoolkit的存储桶。我可以 从s3命令行实用程序连接到s3。但是我不能 flink中具有此配置的检查点。我收到以下错误 消息
Exception in thread "main"
org.apache.flink.runtime.client.JobExecutionException: Could not
retrieve JobResult.
at org.apache.flink.runtime.minicluster.MiniCluster.executeJobBlocking(MiniCluster.java:643)
at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:123)
at org.apache.flink.runtime.checkpoint.CheckpointCoordinator.<init>(CheckpointCoordinator.java:249)
... 17 more
Caused by: java.lang.NullPointerException: null uri host. This can be
caused by unencoded / in the password string
at java.util.Objects.requireNonNull(Objects.java:228)
at org.apache.flink.fs.shaded.hadoop3.org.apache.hadoop.fs.s3native.S3xLoginHelper.buildFSURI(S3xLoginHelper.java:69)
at org.apache.flink.fs.shaded.hadoop3.org.apache.hadoop.fs.s3a.S3AFileSystem.setUri(S3AFileSystem.java:467)
at org.apache.flink.fs.shaded.hadoop3.org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:234)
at org.apache.flink.fs.s3.common.AbstractS3FileSystemFactory.create(AbstractS3FileSystemFactory.java:124)
... 23 more
似乎我设置状态支持的方式导致了此异常:
env.setStateBackend(new FsStateBackend("s3://aip_featuretoolkit/checkpoints/"))
我如何解决此问题,1.7.2是否支持像S3这样的对象存储?还有其他我应该阅读的文件吗?我也找不到可以在flink-conf.yaml文件中使用的与s3相关的选项/参数的任何信息。