Spark Streaming检查站到亚马逊s3

Kni*_*t71 11 spark-streaming

我试图检查rdd到非hdfs系统.从DSE文档看来,似乎无法使用cassandra文件系统.所以我打算用亚马逊s3.但我无法找到任何使用AWS的好例子.

问题

  • 如何将Amazon S3用作检查点目录?是否足以调用ssc.checkpoint(amazons3url)?
  • 是否可以为检查点提供除hadoop文件系统之外的任何其他可靠的数据存储?

Kni*_*t71 8

链接中的答案

解决方案1:

export AWS_ACCESS_KEY_ID=<your access>
export AWS_SECRET_ACCESS_KEY=<your secret>
ssc.checkpoint(checkpointDirectory)
Run Code Online (Sandbox Code Playgroud)

将检查点目录设置为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)
Run Code Online (Sandbox Code Playgroud)