java - Cassandra 2.1.3。如何提取CommitLog

标签 java maven logging cassandra commit

请帮助解决我的问题。我使用 Ubuntu 14.04、Java 8、Cassandra 2.1.3。抱歉我是初学者。如何从目录/var/lib/cassandra/commitlog 中提取并反序列化 commitLog? 据我了解,我们可以使用 Maven cassandra-all 的 lib,CommitLogReplayer.recover 方法在哪里?如果我开始恢复commitLog,例如:

CommitLogReplayer.recover(new File("/var/lib/cassandra/commitlog/CommitLog-4-1453270991708.log")); 

我遇到异常:

Expecting URI in variable: [cassandra.config].  Please prefix the file with file:/// for local files or file://<server>/ for remote files. Aborting. If you are executing this from an external tool, it needs to set Config.setClientMode(true) to avoid loading configuration.
Fatal configuration error; unable to start. See log for stacktrace.

Config.setClientMode(true); - 没有帮助我。

我错了什么?

最佳答案

使用 setClientMode(true),除非您自己执行某些操作来创建 cfmetadata,否则将没有上下文来反序列化数据。即使如此,这也是一个相当重要的项目,因为突变的应用与 C* 紧密耦合。也就是说,这并非不可能,但您将无法使用 CommitLogReplayer,因为它会尝试应用突变。不过,这是一个开始编写自己的好地方(直到 CommitLogReplayer.replayMutation 为止,您可以重复使用很多)。

关于java - Cassandra 2.1.3。如何提取CommitLog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34904660/

相关文章:

java - 无需单击即可更改 JTable 单元格颜色

java - 手动设置程序集包名称,但安装插件会忽略它们

maven - 如何配置 maven settings.xml 以访问 apache 代理背后的 nexus

java - 使用 maven 在父目标目录中自动创建 JAR 文件

java - Log4j 2.5 PatternLayout Nano 时间戳不起作用

java - 在哪里可以找到 System.out.println() 的日志?

java - 如何使用java变量向mysql插入值

java - 向方法发送动态数量的变量的最佳方法是什么?

java - Maven 测试和 -Javaagent 参数

powershell - 在 Powershell 中适当登录