Flink:使用StreamingFileSink时设置ACL

时间:2020-02-24 21:40:34

标签: amazon-s3 apache-flink amazon-emr flink-streaming

我正在尝试将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设置。

1 个答案:

答案 0 :(得分:0)

我经过反复试验发现,在我的flink-conf.yml中添加以下行可以解决此问题。

fs.s3a.acl.default: BucketOwnerFullControl