Spark Streaming 检查点到 amazon s3
Posted
技术标签:
【中文标题】Spark Streaming 检查点到 amazon s3【英文标题】:Spark Streaming checkpoint to amazon s3 【发布时间】:2015-11-02 10:54:14 【问题描述】:我正在尝试将 rdd 检查点到非 hdfs 系统。从DSE document 看来,无法使用 cassandra 文件系统。所以我打算使用 amazon s3 。但我找不到任何使用 AWS 的好例子。
问题
如何使用 Amazon S3 作为检查点目录?调用就够了 ssc.checkpoint(amazons3url) ? 除了 hadoop 文件系统之外,是否还有其他可靠的数据存储用于检查点?【问题讨论】:
【参考方案1】:来自link中的答案
解决方案 1:
export AWS_ACCESS_KEY_ID=<your access>
export AWS_SECRET_ACCESS_KEY=<your secret>
ssc.checkpoint(checkpointDirectory)
将检查点目录设置为 S3 URL -
s3n://spark-streaming/checkpoint
然后使用 spark submit 启动您的 spark 应用程序。
这适用于spark 1.4.2
解决方案2:
val hadoopConf: Configuration = new Configuration()
hadoopConf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
hadoopConf.set("fs.s3n.awsAccessKeyId", "id-1")
hadoopConf.set("fs.s3n.awsSecretAccessKey", "secret-key")
StreamingContext.getOrCreate(checkPointDir, () =>
createStreamingContext(checkPointDir, config)
, hadoopConf)
【讨论】:
【参考方案2】:要检查点到 S3,您可以将以下符号传递给 StreamingContext def checkpoint(directory: String): Unit
方法
s3n://<aws-access-key>:<aws-secret-key>@<s3-bucket>/<prefix ...>
Spark Documentation 中未列出用于检查点的另一个可靠文件系统是Taychyon
【讨论】:
感谢您的帮助。密钥中通常有一个斜线。所以这是行不通的。以上是关于Spark Streaming 检查点到 amazon s3的主要内容,如果未能解决你的问题,请参考以下文章
Spark Structured Streaming - 此查询不支持从检查点位置恢复
驱动程序重新启动后 Spark Streaming 检查点不起作用
如何将 Spark Streaming 检查点位置存储到 S3 中?
Spark Structured Streaming - 由于增加输入源的数量,检查点中的 AssertionError