火花流的 S3 检查点导致错误
Posted
技术标签:
【中文标题】火花流的 S3 检查点导致错误【英文标题】:S3 checkpointing for spark streaming leads to an error 【发布时间】:2016-01-19 00:35:12 【问题描述】:我已使用 getOrCreate 方法为我的 sparkstreaming 应用程序启用检查点。检查点目录指向 S3 存储桶。 我遇到的问题是访问 S3 时的凭据问题:
原因:java.lang.IllegalArgumentException:AWS 访问密钥 ID 和秘密访问密钥必须分别指定为 s3 URL 的用户名或密码,或者通过设置 fs.s3.awsAccessKeyId 或 fs.s3。 awsSecretAccessKey 属性(分别)。
我已经设置了环境变量(AWS_SECRET_KEY 和 AWS_ACCESS_KEY)。 我的 fs.s3.awsAccessKeyId 或 fs.s3.awsSecretAccessKey 也已在 application.conf 中指定。所以我不知道为什么它仍然失败。
【问题讨论】:
【参考方案1】:环境变量(AWS_SECRET_KEY 和 AWS_ACCESS_KEY)在 Spark 1.3 之后不再起作用。
新方法请参考: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)
【讨论】:
以上是关于火花流的 S3 检查点导致错误的主要内容,如果未能解决你的问题,请参考以下文章