我有一个 Cassandra 的单节点实例。我一直在使用批处理语句在 Java 中使用 datastax 驱动程序向其中插入大量数据。
在插入期间的某个时间点后,我看到了 NoHostAvailableException,但是我仍然可以通过 cql 连接到节点并执行语句。 Cassandra 日志警告我批处理太大,当我将大小降低到建议的级别时,我仍然遇到相同的错误,并且 Cassandra 日志文件中似乎没有其他错误。
以前有没有人遇到过这个错误,我觉得 cassandra.yaml 中有一些我遗漏的东西。
最佳答案
我遇到的问题与您遇到的问题非常相似,并在此处解决:Cassandra cluster with bad insert performance and insert stability .
最根本的解决方案是您只是让您的节点过载,而且有争议的是,批量插入并不比异步插入快。当然,您应该使用一些技术来限制您的异步插入。另外,请确保您的网络可以支持您的插入。我连接到一个低功率交换机,当我将路由更改为连接我的服务器(离我有几个房间)时,大约一半的问题都消失了。
如果没有帮助,您应该使用多个节点,具体取决于您的插入率。
关于java - 大批量插入期间的 Cassandra DataStax Driver NoHostAvailableException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29076352/