将相同的Spark Streaming输出写入不同的目的地

时间:2015-03-24 16:13:18

标签: apache-spark spark-streaming

我有一个DStream,我想将每个元素写入套接字和cassandra DB。

我找到了一个使用Apache Kafka和两个使用者的解决方案,一个写入数据库,另一个写入套接字。

有没有办法在不使用此解决方法的情况下执行此操作?

我使用Java,所以请用这种语言发布代码。

1 个答案:

答案 0 :(得分:1)

您只需要对DStream中的rdd应用两个不同的操作:一个用于保存到cassandra,另一个用于将数据发送到其他任何输出。 此外,在这些操作之前缓存rdd以提高性能。

(伪代码,因为我不做Java)

dstream.foreachRDD{rdd =>
    rdd.cache()
    rdd.saveToCassandra(...)
    rdd.foreach(...) // or rdd.foreachPartition(...)
}
相关问题