我有两台运行Cassandra的独立机器,我想将数据从一台机器迁移到另一台机器。
因此,我首先根据datastax documentation在机器1上拍摄了我的Cassandra集群的快照。
然后我将数据移到了机器2,我试图用sstableloader导入它。
注意:机器2上的keypsace(open_weather)和tablename(raw_weather_data)已创建,与机器1上的相同。
我使用的命令如下所示:
bin/sstableloader -d localhost "path_to_snapshot"/open_weather/raw_weather_data
然后出现以下错误:
Established connection to initial hosts
Opening sstables and calculating sections to stream
For input string: "CompressionInfo.db"
java.lang.NumberFormatException: For input string: "CompressionInfo.db"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:276)
at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:235)
at org.apache.cassandra.io.sstable.Component.fromFilename(Component.java:120)
at org.apache.cassandra.io.sstable.SSTable.tryComponentFromFilename(SSTable.java:160)
at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:84)
at java.io.File.list(File.java:1161)
at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:78)
at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:162)
at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:106)
不幸的是我不明白为什么?
我不确定它是否与问题有关,但不知何故在机器1上我的* .db文件是名字而不是#34;奇怪"与我在机器2上已有的* .db文件相比。
*。来自机器1的db文件:
la-53-big-CompressionInfo.db
la-53-big-Data.db
...
la-54-big-CompressionInfo.db
...
*。来自机器2的db文件:
open_weather-raw_weather_data-ka-5-CompressionInfo.db
open_weather-raw_weather_data-ka-5-Data.db
我错过了什么?任何帮助将受到高度赞赏。我也对任何其他建议持开放态度。 COPY命令很可能不起作用,因为据我所知,它仅限于99999999行。
P.S。我不想创建一个过于庞大的帖子,但如果您需要任何进一步的信息来帮助我,请告诉我。
编辑: 请注意,我在独立模式下使用Cassandra。
EDIT2: 在我的目标机器(机器2)上安装相同的版本2.1.4后,我仍然得到所有相同的错误。使用SSTableLoader我仍然得到上面提到的错误并手动复制文件(如LHWizard所述),我再次启动Cassandra并执行SELECT命令后仍然会得到空表。
关于初始令牌,如果我在机器1上执行节点响铃,我会得到一个巨大的令牌列表。我不知道如何处理这些令牌?
答案 0 :(得分:1)
您的数据已经是快照(或备份)的形式。我过去所做的是以下几点:
如果你使用相同版本的cassandra,你真的不需要批量导入数据,它已经是正确的格式,尽管你没有在原始问题中指明