Cassandra CQLSH OperationTimedOut error=客户端请求超时。请参见 Session.execute[_async](超时)
Cassandra CQLSH OperationTimedOut error=Client request timeout. See Session.execute[_async](timeout)
我想将数据从一个 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).
我尝试将 ~/.cassandra/cqlshrc
文件更改为:
[connection]
client_timeout = 5000
但这并没有帮助。
不清楚您在这里使用的是哪个版本的 Cassandra,所以我假设是 3。0.x
COPY
函数很好,但并不总是最佳选择(即,如果您有大量数据),但是为此您可能需要检查 cassandra 中的一些 timeout settings
此处的文档也显示了一个 pagetimeout 设置,可能对您有所帮助。
可以通过多种其他方式在两个集群之间移动数据。您可以使用以下任何一项:
- sstableloader
- 其中一位司机喜欢java driver
- 使用spark将数据从一个集群复制到另一个集群,like in this example
- 使用 OpsCenter clone a cluster
- cassandra bulk loader(我认识很多人用这个)
#3 和#4 当然需要 DSE cassandra,但这只是给你一个想法。我不确定您使用的是 Apache Cassandra 还是 Datastax Enterprise Cassandra。
无论如何,希望这对您有所帮助!
您可能想要增加请求超时(默认值:10 秒),而不是连接超时。
尝试:
cqlsh --request-timeout=6000
或添加:
[connection]
request_timeout = 6000
到您的 ~/.cassandra/cqlshrc
文件。
关于复制超时,正确的方法是使用已经指出的 PAGETIMEOUT 参数。
copy keyspace.table to '/dev/null' WITH PAGETIMEOUT=10000;
尝试使用 cqlsh 设置 --request-timeout=6000 在这种情况下无济于事。
您好,除了以下内容,
1.Check 墓碑
在 cassandra 中,墓碑会降低读取性能并发生以下问题 OperationTimedOut: errors={'127.0.0.1': 'Client request timeout. See Session.execute_async'}, last_host=127.0.0.1
备注
当我们将数据插入 table 时,列中的值为空,它会创建一个墓碑。我们需要避免在 table.
中插入空值
有多个选项可用,例如 unset(https://docs.datastax.com/en/latest-csharp-driver-api/html/T_Cassandra_Unset.htm) and ignoreNulls (https://github.com/datastax/spark-cassandra-connector/blob/master/doc/5_saving.md) 属性 in spark.
您可以使用以下命令检查您的 table 状态
节点工具 table统计数据 keyspace1.tablename
2.Remove 墓碑
如果您在单个节点上工作,您可以通过更改 table 来删除墓碑
改变 table keyspace1.tablename
WITH gc_grace_seconds = '0';
3.read_request_timeout_in_ms:配置cassandra.yaml文件中的值以增加读取请求的超时
我想将数据从一个 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).
我尝试将 ~/.cassandra/cqlshrc
文件更改为:
[connection]
client_timeout = 5000
但这并没有帮助。
不清楚您在这里使用的是哪个版本的 Cassandra,所以我假设是 3。0.x
COPY
函数很好,但并不总是最佳选择(即,如果您有大量数据),但是为此您可能需要检查 cassandra 中的一些 timeout settings
此处的文档也显示了一个 pagetimeout 设置,可能对您有所帮助。
可以通过多种其他方式在两个集群之间移动数据。您可以使用以下任何一项:
- sstableloader
- 其中一位司机喜欢java driver
- 使用spark将数据从一个集群复制到另一个集群,like in this example
- 使用 OpsCenter clone a cluster
- cassandra bulk loader(我认识很多人用这个)
#3 和#4 当然需要 DSE cassandra,但这只是给你一个想法。我不确定您使用的是 Apache Cassandra 还是 Datastax Enterprise Cassandra。
无论如何,希望这对您有所帮助!
您可能想要增加请求超时(默认值:10 秒),而不是连接超时。
尝试:
cqlsh --request-timeout=6000
或添加:
[connection]
request_timeout = 6000
到您的 ~/.cassandra/cqlshrc
文件。
关于复制超时,正确的方法是使用已经指出的 PAGETIMEOUT 参数。
copy keyspace.table to '/dev/null' WITH PAGETIMEOUT=10000;
尝试使用 cqlsh 设置 --request-timeout=6000 在这种情况下无济于事。
您好,除了以下内容,
1.Check 墓碑
在 cassandra 中,墓碑会降低读取性能并发生以下问题 OperationTimedOut: errors={'127.0.0.1': 'Client request timeout. See Session.execute_async'}, last_host=127.0.0.1
备注
当我们将数据插入 table 时,列中的值为空,它会创建一个墓碑。我们需要避免在 table.
中插入空值
有多个选项可用,例如 unset(https://docs.datastax.com/en/latest-csharp-driver-api/html/T_Cassandra_Unset.htm) and ignoreNulls (https://github.com/datastax/spark-cassandra-connector/blob/master/doc/5_saving.md) 属性 in spark.
您可以使用以下命令检查您的 table 状态
节点工具 table统计数据 keyspace1.tablename
2.Remove 墓碑
如果您在单个节点上工作,您可以通过更改 table 来删除墓碑
改变 table keyspace1.tablename
WITH gc_grace_seconds = '0';
3.read_request_timeout_in_ms:配置cassandra.yaml文件中的值以增加读取请求的超时