如何使用sstableloder将数据加载到远程服务器?

时间:2014-06-18 09:43:23

标签: cassandra

我是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: 

我无法得到这里发生的事情......请有人帮助我......

1 个答案:

答案 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 *群集匹配。