我正在尝试检查rdd到非hdfs系统。从DSE document开始,似乎无法使用cassandra文件系统。所以我打算用亚马逊s3。但我无法找到任何使用AWS的好例子。
问题
答案 0 :(得分:8)
来自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)
答案 1 :(得分:3)
要检查点到S3,您可以将以下表示法传递给StreamingContext def checkpoint(directory: String): Unit
方法
s3n://<aws-access-key>:<aws-secret-key>@<s3-bucket>/<prefix ...>
Spark Documentation中未列出的用于检查点的另一个可靠文件系统是Taychyon