Кассандра-стресс 2.1.2 Windows YAML путь к файлу недопустимый символ

Я скачал Cassandra Community Edition 2.1.2 (я знаю, что его последняя версия для разработки в настоящее время может быть нестабильной). Причина в том, что это более новая версия инструмента cassandra-стресс, который поддерживает конфигурацию на основе YAML, которая позволяет запускать инструмент на моем желаемом пространстве клавиш вместо жестко закодированного "Keyspace1" в текущей стабильной версии.

На компьютере с Windows 7 при попытке запуска cassandra-стресс через командную строку и указании пути к файлу 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:" с самого начала и непосредственный запуск абозолютного пути с помощью "/"
  • попробовал другой образец файла YAML, который поставляется с Кассандрой

В качестве следующего шага я планирую скачать исходный код и проверить, что там происходит, или попробовать это на каком-нибудь компьютере с Linux, если мне удастся достать один из них в моей организации, но я просто решил задать этот вопрос кому угодно. мог бы помочь.

Благодарю.

2 ответа

Я не уверен, что именно там происходит, но похоже на ошибку, что у нового cassandra-стресса есть такая проблема с этим профилем пути в 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:\cassandra а не по умолчанию в Program Files. (Избегая всех этих пробелов в именах каталогов.)

Эта проблема все еще присутствует в версии 2.1.5 Datastax Community Edition для Windows. Стек устанавливается в e:\cassandra, и он все еще не работает:-(. Обратите внимание, что не задокументировано, что вам нужно указать полный путь с использованием синтаксиса, например:

Файл: /// C: /temp/cqlstress-example.yaml

Другой жестокий взлом состоит в том, чтобы настроить локальный сервер Apache, поместить туда свои файлы yaml и использовать путь к профилю, который будет обслуживаться с сервера, вот так

bin \ cassandra -ress профиль пользователя = http://localhost/sample.yaml ops (insert = 1)

Другие вопросы по тегам