我是cassandra的新手,情况是:
[1]我想将我的cassandra数据从我的客户端PC批量加载(批量上传)到“远程服务器A”
[2]远程服务器A的IPAddress是192.168。。
[3]所以我从我的客户端PC输入如下内容:
$ sstableloader -d 192.168.**.** [path/to/my/clientPC's/cassandra/columnFamily/Directory]
[4] cassandra正在clientPC和远程服务器A上运行
然后,我收到这样的消息......
Could not retrieve endpoint ranges:
我无法得到这里发生的事情......请有人帮助我......
答案 0 :(得分:1)
确保从C *数据目录根目录运行命令,然后传递keyspace和columnFamily的相对路径。目标数据库还必须具有相同的键空间名称和列族名称。
因此,如果cassandra.yaml中的C *数据目录定义为/cassandra/data
且密钥空间为ks1
且列族为my_cf
,则cd转至/cassandra/data
,运行sstableloader -d <ip> ks1/mv_cf
。
来自http://www.datastax.com/docs/1.1/references/bulkloader
使用sstableloader
在二进制安装中,sstableloader位于 / bin目录。
sstableloader批量加载目录中的SSTables 到配置的群集。的父目录 用作键空间名称。例如加载一个 SSTable将Standard1-he-1-Data.db命名为密钥空间Keyspace1 文件Keyspace1-Standard1-he-1-Data.db和 Keyspace1-Standard1-he-1-Index.db必须位于一个名为的目录中 Keyspace1 /标准1 /.
bash sstableloader [options]
示例:
$ ls -1 Keyspace1 / Standard1 / Keyspace1-Standard1-he-1-Data.db Keyspace1-Standard1-he-1-Index $ / bin / sstableloader -d localhost //
此外,请确保所有sstableloader默认值(例如端口)与目标C *群集匹配。