我有一张有卡桑德拉巨大数据的桌子。我试图通过程序使用dse驱动程序读取分区上的数据。对于某些分区,分区中可能有超过1亿行,当我试图读取这些分区时,我将得到OperationTimedOutException。
下面是堆栈跟踪-
com.datastax.driver.core.exceptions.OperationTimedOutException: [X.X.X.X/X.X.X.X:XXXX] Timed out waiting for server response
at com.datastax.driver.core.exceptions.OperationTimedOutException.copy(OperationTimedOutException.java:35)
at com.datastax.driver.core.exceptions.OperationTimedOutException.copy(OperationTimedOutException.java:17)
at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:28)
at com.datastax.driver.core.ArrayBackedResultSet$MultiPage.prepareNextRow(ArrayBackedResultSet.java:304)
at com.datastax.driver.core.ArrayBackedResultSet$MultiPage.isExhausted(ArrayBackedResultSet.java:260)
at com.datastax.driver.core.ArrayBackedResultSet$1.hasNext(ArrayBackedResultSet.java:134)
at com.datastax.driver.core.ArrayBackedResultSet.all(ArrayBackedResultSet.java:123)我试过下面的东西,但对我来说不管用-
如有任何帮助,我们将不胜感激:)
发布于 2018-07-19 07:04:18
看来卡桑德拉无法在规定的时间内满足要求。您可以在cassandra.yaml文件中增加下面的参数,以处理超时问题,但程度不会更高。read_request_timeout_in_ms: write_request_timeout_in_ms:
如果没有帮助,那么你应该查看卡桑德拉的日志,看看其他异常情况,如墓碑等。
发布于 2018-07-19 07:06:17
Cassandra配置文件获得参数以限制响应时间。如果响应需要更多的时间,则一定会得到Timed out waiting for server response。但是这可以在cassandra.yaml文件中手动配置。
请根据需要更改下列参数:
# How long the coordinator should wait for read operations to complete
read_request_timeout_in_ms: 5000
# The default timeout for other, miscellaneous operations
request_timeout_in_ms: 10000以防您无法访问cassandra配置文件。使用cassandra的分页功能来查询大型结果,或者您可以在代码本身中处理分页。
https://stackoverflow.com/questions/51416030
复制相似问题