1

我已经下载了 Cassandra 社区版 2.1.2(我知道它目前是最新的开发版本,因此可能不稳定)。原因是更新版本的 cassandra-stress 工具支持基于 YAML 的配置,可以在我想要的键空间上运行该工具,而不是当前稳定版本中硬编码的“Keyspace1”。

在 Windows 7 机器上,当尝试通过命令行运行 cassandra-stress 并指定 YAML 文件的路径时,由于路径中以“C:\”开头的“:”字符,它总是给出错误

C:\Program Files\DataStax Community\apache-cassandra\tools\bin>cassandra-stress user profile=../cqlstress-musicdb.yaml ops(insert=1)

输出是

Illegal character in path at index 10: file:///C:\Program Files\DataStax Community\apache-cassandra\tools\bin\cqlstress-musicdb.yaml

我尝试了不同的选项来指定路径

  • 给出绝对路径
  • 用双引号和单引号给出绝对路径
  • 在同一文件夹中复制 YAML 并指定文件名
  • 在没有空格的路径中复制 YAML,因为使用单引号时会出现问题
  • 使用反斜杠转义“:”
  • 从头开始忽略“C:”,直接用“/”开始绝对路径
  • 尝试了 cassandra 附带的不同示例 YAML 文件

作为下一步,我计划下载源代码并检查那里发生了什么,或者如果我能够在我的组织中找到一个,或者在一些 linux 机器上尝试这个,但只是想提出这个问题是任何人有帮助。

谢谢。

4

2 回答 2

2

我不确定那里到底发生了什么,但新的 cassandra-stress 在 Windows 上的配置文件路径上存在这样的问题似乎确实是一个错误。

我能够完成以下工作:

首先,将您的 .yaml 文件复制到没有空格的路径(如 c:\temp)

然后,使用“file:///”前缀运行压力命令,如下所示

C:\>cd "Program Files\DataStax Community\apache-cassandra\tools"
C:\Program Files\DataStax Community\apache-cassandra\tools>bin\cassandra-stress user profile=file:///c:/temp/cqlstress-example.yaml ops(insert=1)

在 Windows 上,如果您安装到类似于c:\cassandraProgram Files 下的默认路径而不是默认路径,您可能会更轻松。(避免目录名称中的所有空格。)

于 2014-12-10T22:02:04.857 回答
1

此问题在 Windows 的 Datastax Community Edition 2.1.5 版中仍然存在。堆栈安装在 e:\cassandra 下,但仍然失败 :-(。请注意,未记录的是您需要使用如下语法提供完整路径:

file:///c:/temp/cqlstress-example.yaml

另一个残酷的 hack 是设置一个本地 apache 服务器,将您的 yaml 文件放在那里并使用配置文件路径从服务器提供服务,就像这样

bin\cassandra-stress 用户配置文件= http://localhost/sample.yaml ops(insert=1)

于 2015-05-16T05:33:35.440 回答