Cassandra Invalid Yaml, несмотря на допустимые значения

Я пишу скрипт Python в Windows, который берет файл cassandra.yaml, записывает новый с другими значениями, а затем копирует этот файл на сервер Linux. Однако я получаю эту ошибку от сервера Linux при запуске cassandra:

ERROR 00:53:03 Exception encountered during startup
org.apache.cassandra.exceptions.ConfigurationException: Invalid yaml. Please remove properties [credentials_validity_in_ms, prepared_statements_cache_size_mb, transparent_data_encryption_options, thrift_prepared_statements_cache_size_mb, column_index_cache_size_in_kb] from your cassandra.yaml
    at org.apache.cassandra.config.YamlConfigurationLoader$MissingPropertiesChecker.check(YamlConfigurationLoader.java:188) ~[apache-cassandra-3.0.7.jar:3.0.7]
    at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:119) ~[apache-cassandra-3.0.7.jar:3.0.7]

Я посмотрел файл, который был скопирован на сервер linux, ниже его часть при просмотре в vi. Связана ли ошибка с недопустимыми свойствами, как говорится в сообщении об ошибке, или она связана с возвратом каретки вместо символов перевода строки? Или что-то совсем другое (можете выложить полный yaml-файл, если нужно)?

# Validity period for credentials cache. This cache is tightly coupled to^M
# the provided PasswordAuthenticator implementation of IAuthenticator. If^M
# another IAuthenticator implementation is configured, this cache will not^M
# be automatically used and so the following settings will have no effect.^M
# Please note, credentials are cached in their encrypted form, so while^M
# activating this cache may reduce the number of queries made to the^M
# underlying table, it may not  bring a significant reduction in the^M
# latency of individual authentication attempts.^M
# Defaults to 2000, set to 0 to disable credentials caching.^M
credentials_validity_in_ms: 2000^M
^M
# Refresh interval for credentials cache (if enabled).^M

person Rdesmond    schedule 14.07.2016    source источник


Ответы (1)


Связана ли ошибка с недопустимыми свойствами, как говорится в сообщении об ошибке?

Да. Я думаю, что это связано со свойствами, которые вы добавили с помощью своего скрипта Python. Я также попытался добавить некоторые дополнительные свойства (которые не являются частью оригинального cassandra.yaml), но cassandra не запустилась. Я думаю, что это просто запрещено в cassandra.yaml.

это связано с возвратом каретки вместо символов перевода строки?

Я так не думаю. Что касается этой ошибки, то в ней четко указано, что вы не должны использовать какие-либо дополнительные свойства в cassandra.yaml.

DOS/Windows используют символы CR-LF в качестве разделителя строк, но системы на базе Linux используют только LF. Вот почему символы ^M появляются в вашем редакторе vi. Вы можете использовать утилиту dos2unix для удаления символов CR из любого файла.

Кстати, почему вы хотите добавить эти свойства в файл cassandra.yaml? Вы можете создать свой собственный файл свойств и прочитать оттуда настраиваемое значение.

person Vinay    schedule 14.07.2016
comment
Спасибо, вы были правы, это было несоответствие версии: я копировал файл cassandra.yaml из версии 3.7 на Linux-сервер, на котором работала версия 3.0.7. - person Rdesmond; 14.07.2016