json2sstable cassandra给出的错误如“先升级到1.2.5,并运行升级稳定”

时间:2014-02-17 10:46:38

标签: json cassandra

我想使用json2sstable选项将json数据插入cassandra sstable。

我的稳定是:

cid | key  | ts
101 | ramu | 686

我想使用json添加另一行。

json文件是:

[
{"columns": [["cid","102"],["key","raju"],["ts","687"]]}
]

我运行以下内容:

D:\cassandra\bin>json2sstable -K demodb -c data_points 

我收到此错误..

java.lang.UnsupportedOperationException:SSTable data_points-e-1-Data.db is too oldto open.  Upgrade to 1.2.5 first, and run upgradesstables
        at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:235)
        at org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:204)
        at org.apache.cassandra.io.sstable.SSTableWriter.<init>(SSTableWriter.java:60)
        at org.apache.cassandra.tools.SSTableImport.importUnsorted(SSTableImport.java:354)
        at org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:335)
        at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:559)

ERROR: SSTable data_points-e-1-Data.db is too old to open.  Upgrade to 1.2.5 first, and run upgradesstables"****

我该怎么办?请给我任何建议。 提前谢谢你......

1 个答案:

答案 0 :(得分:1)

看起来问题是你给sstable的文件名。你的sstable文件名中的'e'表示sstable的版本,Cassandra正在检查和拒绝太旧('e'来自Cassandra的0.7版本)。我猜你刚从旧的例子中复制了它。您应该在您的数据目录中查看其他sstables正在使用的版本并使用相同的版本。如果你在2.0.0,它将是'ja'; 2.0.1-2.0.5将是'jb'。

您还应该知道json2sstable主要用于调试和测试。如果您正在进行批量加载,您可能需要考虑其他(经过更多测试的)选项,例如sstableloader。