gpt4 book ai didi

cassandra - 尝试查询的所有主机均失败 - com.datastax.driver.core.OperationTimedOutException

转载 作者:行者123 更新时间:2023-12-02 23:12:39 24 4
gpt4 key购买 nike

使用 Spark 作业执行 Cassandra 操作(批量执行 - 在两个表上插入和更新操作)时,我收到“所有主机尝试查询失败 - com.datastax.driver.core.OperationTimedOutException ”错误。

集群信息:
Cassandra 2.1.8.621 | DSE 4.7.1
Spark-cassandra-connector-java_2.10 版本 - 1.2.0-rc1 | cassandra-driver-core 版本 - 2.1.7
Spark 1.2.1 | Hadoop 2.7.1
=> 3 个节点
Cassandra 2.1.8 => 5 个节点
每个节点拥有 28 GB 内存和 24 个核心

在寻找它的解决方案时,我遇到了一些讨论,这些讨论表明您不应该使用 BATCHES。虽然我想找到此错误的根本原因。另外,如何以及从何处设置/获取“SocketOptions.setReadTimeout”,因为此超时限制必须大于 Cassandra 请求超时标准指南并避免可能的错误。

是 request_timeout_in_ms 和 SocketOptions。 setReadTimeout 一样吗?有人可以帮我吗?

最佳答案

While performing Cassandra operations (Batch execution- insert andupdate operations on two tables) using spark job I am getting "Allhost(s) tried for query failed - com. datastax. driver. core.OperationTimedOutException" error.

直接来自docs :

为什么我的写入任务超时/失败?

最常见的原因是 Spark 发出写入请求的速度比 Cassandra 处理它们的速度快得多。这可能会导致 GC 问题并产生提示。如果您的应用程序出现这种情况,请尝试使用以下选项降低并发写入数量和当前批处理大小。

spark.cassandra.output.batch.size.rows Spark.cassandra.output.concurrent.writes

或者 Spark Cassandra Connector 版本大于或等于 1.2.0 集

spark.cassandra.output.throughput_mb_per_sec

这将允许您控制每秒每个 Spark 核心写入 C* 的数据量。

you should not use BATCHES

这并不总是正确的,连接器使用本地 token 感知批处理来加快读取和写入速度,但这在自定义应用程序中很难实现。在许多情况下,异步查询更好或同样好。

setReadTimeout

这是一个 DataStax java 驱动程序 method 。连接器会为您处理此问题,无需更改它。

关于cassandra - 尝试查询的所有主机均失败 - com.datastax.driver.core.OperationTimedOutException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32501108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com