Cassandra CQLSH OperationTimedOut错误=客户端请求超时.请参见Session.execute [_async](超时)

Ris*_*dar 15 timeout operation cassandra cqlsh

我想将数据从一个Cassandra集群(通过192.168.0.200到达)传输到另一个Cassandra集群(通过127.0.0.1到达).数据为523行,但每行约为1 MB.我正在使用COPY FROM和COPY TO命令.发出COPY TO命令时出现以下错误:

Error for (8948428671687021382, 9075041744804640605):
OperationTimedOut - errors={
'192.168.0.200': 'Client request timeout. See Session.execute[_async](timeout)'},
last_host=192.168.0.200 (will try again later attempt 1 of 5).
Run Code Online (Sandbox Code Playgroud)

我试图将~/.cassandra/cqlshrc文件更改为:

[connection]
client_timeout = 5000
Run Code Online (Sandbox Code Playgroud)

但这没有帮助.

Luc*_*lli 16

您可能希望增加请求超时(默认值:10秒),而不是连接超时.

尝试:

cqlsh --request-timeout=6000
Run Code Online (Sandbox Code Playgroud)

或添加:

[connection]
request_timeout = 6000
Run Code Online (Sandbox Code Playgroud)

到你的~/.cassandra/cqlshrc文件.


mar*_*rkc 3

目前尚不清楚您在这里使用的是哪个版本的 Cassandra,因此我假设使用 3.0.x

COPY功能很好,但并不总是最佳选择(即,如果您有大量数据),但是为此,您可能需要检查cassandra 中的一些超时设置

这里的文档也显示了页面超时设置,这可能会对您有所帮助。

在两个集群之间移动数据可以通过多种其他方式完成。您可以使用以下任何一种:

  1. 稳定加载
  2. 像java驱动程序这样的驱动程序之一
  3. 使用 Spark 将数据从一个集群复制到另一个集群,如本例所示
  4. 使用 OpsCenter克隆集群
  5. cassandra 批量加载器(我认识很多人使用它)

当然,#3 和#4 需要 DSE cassandra,但这只是为了给您一个想法。我不确定您使用的是 Apache Cassandra 还是 Datastax Enterprise Cassandra。

无论如何,希望这有帮助!