在SparkStreaming中我们应该将保存部分卸载到另一个层,因为如果我们的数据库是cassandra,当我们使用SparkCassandraConnector时SparkStreaming上下文不可用。而且,即使我们使用其他数据库来保存我们的数据,我们也需要在每次处理一批rdds时在worker上创建连接。连接对象的原因未序列化。
是否建议在工人处创建/关闭连接?
明天我们可能会更改数据库,这会使我们的系统与现有数据库紧密结合
答案 0 :(得分:2)
回答你的问题:
可能重复: Handle database connection inside spark streaming
阅读此链接,它应该澄清一些问题 Design Patterns for using foreachRDD
希望这有帮助!