将相同的 Spark Streaming 输出写入不同的目的地
Writing same Spark Streaming Output to different destinations
我有一个 DStream,我想将每个元素写入套接字和 cassandra DB。
我找到了一个使用 Apache Kafka 和两个消费者的解决方案,一个写入数据库,另一个写入套接字。
有没有办法在不使用此解决方法的情况下做到这一点?
我使用 Java 所以请 post 使用这种语言编写代码。
您只需要对 DStream
中的 rdd 应用两种不同的操作:一种是保存到 cassandra,另一种是将数据发送到任何其他输出。
此外,在这些操作之前缓存 rdd 以提高性能。
(在伪代码中,因为我不这样做Java)
dstream.foreachRDD{rdd =>
rdd.cache()
rdd.saveToCassandra(...)
rdd.foreach(...) // or rdd.foreachPartition(...)
}
我有一个 DStream,我想将每个元素写入套接字和 cassandra DB。
我找到了一个使用 Apache Kafka 和两个消费者的解决方案,一个写入数据库,另一个写入套接字。
有没有办法在不使用此解决方法的情况下做到这一点?
我使用 Java 所以请 post 使用这种语言编写代码。
您只需要对 DStream
中的 rdd 应用两种不同的操作:一种是保存到 cassandra,另一种是将数据发送到任何其他输出。
此外,在这些操作之前缓存 rdd 以提高性能。
(在伪代码中,因为我不这样做Java)
dstream.foreachRDD{rdd =>
rdd.cache()
rdd.saveToCassandra(...)
rdd.foreach(...) // or rdd.foreachPartition(...)
}