我正在尝试将Flink作业(在EMR上运行v1.8)从使用BucketingSink过渡到较新的StreamingFileSink。
我已经运行了新代码,几乎所有内容都看起来不错。文件被写入S3并转换为完整文件。唯一的问题是S3的ACL设置不像旧代码那样。
我的core-site.xml
设置就这样
<configuration>
<property>
<name>fs.s3a.acl.default</name>
<value>BucketOwnerFullControl</value>
</property>
</configuration>
我还使用s3a://
作为StreamingFileSink构建器的forRowFormat()
参数中路径的前缀。
此外,当切换到StreamingFileSink时,我必须向build.gradle添加新的依赖项
flinkShadowJar "org.apache.flink:flink-s3-fs-hadoop:${flinkVersion}"
在使用BucketingSink api时,我如何使用不带jar的s3a://前缀写入S3尚不清楚。我现在正在以某种方式写S3的方式不遵守我的core-site.xml设置。
答案 0 :(得分:0)
我经过反复试验发现,在我的flink-conf.yml
中添加以下行可以解决此问题。
fs.s3a.acl.default: BucketOwnerFullControl