Как решить ConfigurationException: Пропавшие без вести необходимого направляющего CommitLogSync при конфигурировании много узла кластер Cassandra на Centos7?

Цель: настраивать много узел кластер Cassandra на Centos7


Метод

Эта документация используется для конфигурирования много узла кластер Cassandra.

[user@cassandra01 ~]$ cat /etc/cassandra/conf/cassandra.yaml
cluster_name: 'MyCassandraCluster'
num_tokens: 256
seed_provider:
  - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: "<ipaddress_cassandra01>,<ipaddress_cassandra02>"
listen_address:
rpc_address: 0.0.0.0
endpoint_snitch: GossipingPropertyFileSnitch

Проблема

Когда первый узел Cassandra был запущен путем издания:

sudo systemctl start cassandra

узел, кажется, не запускается и /var/log/cassandra/cassandra.log указывает что:

 INFO 12:56:38,057 Loading settings from file:/etc/cassandra/default.conf/cassandra.yaml
 INFO 12:56:40,073 Data files directories: null
 INFO 12:56:40,089 Commit log directory: null
ERROR 12:56:40,097 Fatal configuration error
org.apache.cassandra.exceptions.ConfigurationException: Missing required directive CommitLogSync
        at org.apache.cassandra.config.DatabaseDescriptor.applyConfig(DatabaseDescriptor.java:148)
        at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:112)
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:213)
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:554)
        at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:643)
Missing required directive CommitLogSync
Fatal configuration error; unable to start. See log for stacktrace.

Попытка решить проблему

Согласно сообщению об ошибке похоже, что существует проблема конфигурации, или определенные каталоги не существуют.

1) Missing required directive CommitLogSync:

Согласно этой документации существует значение по умолчанию commitlog_sync, т.е.:

commitlog_sync (Значение по умолчанию: периодический) метод, что использование Cassandra для подтверждения записей в миллисекундах:

    periodic : Used with commitlog_sync_period_in_ms (Default: 10000 - 10 seconds ) to control how often the commit log is

синхронизируемый с диском. Периодические синхронизации сразу подтверждаются. пакет: Используемый с commitlog_sync_batch_window_in_ms (Значение по умолчанию: отключенный **) для управления, сколько времени Cassandra ожидает других записей прежде, чем выполнить синхронизацию. При использовании этого метода записи не подтверждаются до fsynced к диску.

2) Data files directories: null:

data_file_directories (Значение по умолчанию:/var/lib/cassandra/data) местоположение каталога, где данные таблицы (SSTables) хранятся.

Издание ls /var/lib/cassandra/data возвраты a 0 и указывает, что каталог существует.

3) Commit log directory: null:

commitlog_directory (Значение по умолчанию:/var/lib/cassandra/commitlog) каталог, где журнал фиксации хранится. Для оптимальной производительности записи рекомендуется, чтобы журнал фиксации был на разделе отдельного диска (идеально, разное физическое устройство) из каталогов файла данных.

Подтвержденный, что /var/lib/cassandra/commitlog каталог существует также.


Вопрос

Что вызывает эту проблему и как решить ее?

0
задан 18 October 2015 в 16:55
1 ответ

Хотя в документации указано, что существуют настройки по умолчанию, само программное обеспечение требует, чтобы они были определены в cassandra.yaml. Определение следующего в /etc/cassandra/conf/cassandra.yaml :

data_file_directories:
  - /var/lib/cassandra/data
commitlog_directory: /var/lib/cassandra/commitlog
saved_caches_directory: /var/lib/cassandra/saved_caches

и перезапуск cassandra решили проблему.

3
ответ дан 4 December 2019 в 12:25

Теги

Похожие вопросы