Flink CDC这个错误有人遇到过吗?文件已经存进阿里云OSS了但是清理策略删不掉2023-04-

Flink CDC这个错误有人遇到过吗?文件已经存进阿里云OSS了但是清理策略删不掉2023-04-20 18:28:49,020 WARN org.apache.flink.runtime.blob.FileSystemBlobStore [] - Failed to delete blob at oss://xxxx/flink/jobmanager-ha/flink-application/blob/job_76b947e3de7c68abb1ae79196e99368b 2023-04-20 18:28:49,021 WARN org.apache.flink.runtime.dispatcher.cleanup.DefaultResourceCleaner [] - Cleanup of BlobServer failed for job 76b947e3de7c68abb1ae79196e99368b due to a CompletionException: java.io.IOException: java.io.IOException: Error while cleaning up the BlobStore for job 76b947e3de7c68abb1ae79196e99368b 2023-04-20 18:28:49,268 WARN org.apache.flink.fs.osshadoop.shaded.com.aliyun.oss [] - [Server]Unable to execute HTTP request: You have no right to access this object because of bucket acl. [ErrorCode]: AccessDenied

展开
收起
真的很搞笑 2023-04-26 14:54:44 220 分享 版权
阿里云 AI 助理回答

遇到您描述的错误,这通常意味着Flink CDC在尝试清理OSS上的某个blob(文件)时遇到了权限问题。错误信息中的“AccessDenied”明确指出是因为桶级别的ACL(访问控制列表)设置导致没有足够的权限去访问或删除该对象。这意味着Flink运行的账号或角色没有被授予对特定OSS bucket中对象的删除权限。

要解决这个问题,您可以按照以下步骤操作:

  1. 检查Bucket ACL设置:登录阿里云OSS管理控制台,查看出现问题的bucket的访问控制列表(Access Control List)。确保该bucket允许执行删除操作的角色或用户有相应的权限。对于生产环境,推荐使用RAM角色进行细粒度的权限管理。

  2. 配置正确的RAM角色:如果Flink作业是在ECS实例、Kubernetes集群或其他阿里云服务上运行的,确保为执行任务的角色绑定了一个具有足够权限的RAM角色。这个角色需要至少包含对目标OSS bucket的oss:DeleteObject权限。可以通过创建并绑定一个自定义的RAM策略来实现这一点。

  3. 更新Flink配置:如果您使用的是阿里云的OSS FileSystem,确保在Flink的配置中正确设置了OSS相关的凭证信息,包括AccessKey ID、AccessKey Secret以及可能的STS Token(如果使用临时凭证)。这些凭证应与拥有适当权限的RAM用户或角色相关联。

  4. 验证权限:在修改权限后,可以尝试手动使用相同的凭证从OSS控制台或通过CLI工具删除一个测试文件,以验证权限是否已经正确设置。

  5. 重启Flink作业:在完成上述配置更改后,重启您的Flink作业,看是否还存在同样的权限问题。

如果问题依旧,建议检查Flink的日志中是否有更详细的错误信息,或者联系阿里云技术支持获取进一步的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

大数据领域前沿技术分享与交流,这里不止有技术干货、学习心得、企业实践、社区活动,还有未来。

还有其他疑问?
咨询AI助理