EMR中出现错误(S3存储桶访问被拒绝)

时间:2018-11-27 05:29:25

标签: amazon-web-services amazon-s3 apache-spark-sql amazon-emr aws-step-functions

我正在尝试使用Step函数读取数据并将输出写入S3存储桶,但无法执行。出现以下错误。

Status :FAILED
Reason : S3 Service Error.
Log File : s3://test-system/Log/EMR/j-27THIBBI6291N/steps/s-F9UPNCV45OHA/stderr.gz
Details : Caused by: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 0E94EA8E20FE8396), S3 Extended Request ID: 9QxTxb3bzNwPnIieC8UAAtnAcJp+Z4RgM+aqBSki7RjLW8pRHZiII30dU6Bm0qYAHrS2MQcE9r4=
JAR location : command-runner.jar
Main class : None

我已经在Intellij中尝试了相同的代码,并且能够从s3存储桶读取数据或向s3存储桶写入数据文件。

我在代码中使用了Accesskey和Secrey键,但仍然收到相同的错误。 我正在通过Step函数中的lambda函数调用jar文件。

我的代码:

val df = spark.read.format("csv").option("header","true").option("inferSchema","true").load("s3a://test-system/test.csv")
    sloggeri.debug("File Processing...","import_jar","sampleifleread","")
    df.createOrReplaceTempView("data")

    sloggeri.debug("File Processing...1....","import_jar","sampleifleread","")
    val res = spark.sql("select count(*) from data")
    sloggeri.debug("File Reading completed...","import_jar","sampleifleread","")

    res.coalesce(1).write.format("csv").option("header","true").mode("Overwrite")
      .save("s3a://test-system/Output/Test_Result")

以上代码正在运行并经过测试。 你能帮我解决这个问题吗?

非常感谢。

0 个答案:

没有答案