Spark应用程序不会写入s3存储桶

时间:2017-09-15 07:53:37

标签: java hadoop apache-spark amazon-s3 hadoop2.7.3

问题是:

我有火花应用程序,它无法将数据写入s3。 读书很好。

Spark配置:

        SparkConf conf = new SparkConf();
        ...
        conf.set("spark.hadoop.fs.s3a.endpoint", getCredentialConfig().getS3Endpoint());
        System.setProperty("com.amazonaws.services.s3.enableV4", "true");// local works. enable aws v4 auth.

        conf.set("spark.hadoop.fs.s3a.impl", org.apache.hadoop.fs.s3a.S3AFileSystem.class.getName());
        conf.set("spark.hadoop.fs.s3a.access.key", getCredentialConfig().getS3Key());
        conf.set("spark.hadoop.fs.s3a.secret.key", getCredentialConfig().getS3Secret());


        conf.set("spark.hadoop.fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
        conf.set("spark.hadoop.fs.file.impl", org.apache.hadoop.fs.LocalFileSystem.class.getName());
        ...

写作构造是:

String fileName = "s3a://" + getCredentialConfig().getS3Bucket() + "/s3-outputs/test/";
getSparkSession()
     .createDataset(list, Encoders.INT())
     .write()
     .format("com.databricks.spark.csv")
     .mode("overwrite")
     .csv(fileName);

例外是:

10:35:01.914 [main] DEBUG org.apache.hadoop.fs.s3a.S3AFileSystem - Not Found: s3a://mybucket/s3-outputs/test/_temporary-39c4ebc3-61bd-47e0-9ac6-d047af1965f3
10:35:01.914 [main] DEBUG org.apache.hadoop.fs.s3a.S3AFileSystem - Couldn't delete s3a://mybucket/s3-outputs/test/_temporary-39c4ebc3-61bd-47e0-9ac6-d047af1965f3 - does not exist

这意味着,火花无法在目标文件系统上找到模板文件夹。

目前的hadoop版本:2.7.3

Java 8

在Hadoop 2.8.1上 - 一切正常。但AWS EMR目前还不支持hadoop 2.8。*版本。

0 个答案:

没有答案
相关问题