Кассандра-стресс 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)