使用Amazon S3运行Apache Flink

Kon*_*sev 11 hadoop amazon-s3 apache-flink

有人成功使用Apache Flink 0.9来处理存储在AWS S3上的数据吗?我发现他们正在使用自己的S3FileSystem而不是Hadoop中的一个...而且看起来它不起作用.我把以下路径s3://bucket.s3.amazonaws.com/文件夹失败,但出现以下异常:

java.io.IOException:无法建立与Amazon S3的连接:com.amazonaws.services.s3.model.AmazonS3Exception:我们计算的请求签名与您提供的签名不匹配.检查您的密钥和签名方法.(服务:Amazon S3;状态代码:403;

Rob*_*ger 9

2016年5月更新:Flink文档现在有一个关于如何使用Flink与AWS的页面


Flink用户邮件列表上也提出了这个问题,我已在那里回答:http://apache-flink-user-mailing-list-archive.2336050.n4.nabble.com/Processing-S3-数据与- Apache的弗林克-td3046.html

TL;博士:

Flink计划

public class S3FileSystem {
   public static void main(String[] args) throws Exception {
      ExecutionEnvironment ee = ExecutionEnvironment.createLocalEnvironment();
      DataSet<String> myLines = ee.readTextFile("s3n://my-bucket-name/some-test-file.xml");
      myLines.print();
   }
}
Run Code Online (Sandbox Code Playgroud)

将以下内容添加到core-site.xml并将其提供给Flink:

<property>
    <name>fs.s3n.awsAccessKeyId</name>
    <value>putKeyHere</value>
</property>

<property>
    <name>fs.s3n.awsSecretAccessKey</name>
    <value>putSecretHere</value>
</property>
<property>
    <name>fs.s3n.impl</name>
    <value>org.apache.hadoop.fs.s3native.NativeS3FileSystem</value>
</property>
Run Code Online (Sandbox Code Playgroud)