对火花流进行S3检查点会导致错误

时间:2016-01-19 00:35:13

标签: amazon-s3 apache-spark spark-streaming

我已使用getOrCreate方法为我的sparkstreaming应用程序启用了检查点。检查点目录指向S3存储桶。 我遇到的问题是访问S3时的凭据问题:

引起:java.lang.IllegalArgumentException:必须将AWS Access Key ID和Secret Access Key指定为s3 URL的用户名或密码,或者设置fs.s3.awsAccessKeyId或fs.s3。 awsSecretAccessKey属性(分别)。

我已经设置了环境变量(AWS_SECRET_KEY和AWS_ACCESS_KEY)。 另外我在application.conf中指定了fs.s3.awsAccessKeyId或fs.s3.awsSecretAccessKey。所以我不知道为什么它仍然失败。

1 个答案:

答案 0 :(得分:1)

Spark 1.3之后,环境变量(AWS_SECRET_KEY和AWS_ACCESS_KEY)不再有效。

请参阅新方法:
How to read input from S3 in a Spark Streaming EC2 cluster application

val conf = new SparkConf().setAppName("Simple Application").setMaster("local")      
val sc = new SparkContext(conf)
val hadoopConf=sc.hadoopConfiguration;
hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
hadoopConf.set("fs.s3.awsAccessKeyId",myAccessKey)
hadoopConf.set("fs.s3.awsSecretAccessKey",mySecretKey)