如何在不耗尽内存的情况下复制大型Cassandra表?

如何在不耗尽内存的情况下复制大型Cassandra表?,cassandra,cql,cqlsh,Cassandra,Cql,Cqlsh,我正在尝试运行一个简单的Cassandra数据库复制脚本,如下面的示例(或一些非常类似的变体): 除了我最大的桌子外,它在大多数桌子上都能用。在这种情况下,我得到一个错误,它无法分配足够的内存。表的文件大小在数据量上远没有错误消息声称的那么大(小于1GB) 749314行在9分11.240秒内导出为1个文件 ./dump_cassandra.sh:xmalloc:../../..//lib/sh/strtrans.c:63:无法分配18446744072166431589字节(已分配644252

我正在尝试运行一个简单的Cassandra数据库复制脚本,如下面的示例(或一些非常类似的变体):

除了我最大的桌子外,它在大多数桌子上都能用。在这种情况下,我得到一个错误,它无法分配足够的内存。表的文件大小在数据量上远没有错误消息声称的那么大(小于1GB)

749314行在9分11.240秒内导出为1个文件

./dump_cassandra.sh:xmalloc:../../..//lib/sh/strtrans.c:63:无法分配18446744072166431589字节(已分配6442528768字节)”,“标准输出行”:[“[Thu May 17 13:41:47 UTC 2018]执行以下查询:,”将my_keyspace_name.my_table_name复制到'cassandra_dump/my_keyspace_name.my_table_name.csv',标题为true,页面超时为40,页面大小为20,分隔符为'|';“

这似乎很有希望,但不幸的是,它对我不起作用

是否有什么东西使我无法在大型(相对而言)表上成功运行副本

--


编辑:此错误似乎是环境错误。我在不同的服务器上使用几乎相同的数据量得到了不同的结果。

设置
MAXOUTPUTSIZE
会将备份数据拆分到多个文件中,不会导致此错误发生


将my_keyspace_name.my_table_name复制到'cassandra_dump/my_keyspace_name.my_table_name.csv',HEADER=true,PAGETIMEOUT=40,MAXOUTPUTSIZE=100000,DELIMITER='|';

您尝试过限制复制命令吗?请查看下面的链接:。我在想:NUMPROCESSES,CHUNKSIZE,MAXREQUESTSWhat cassandra version?版本是什么 2.1.17.1448
COPY my_keyspace_name.my_table_name TO 'cassandra_dump/my_keyspace_name.my_table_name.csv' WITH HEADER=true AND PAGETIMEOUT=40 AND PAGESIZE=20 AND DELIMITER='|';