Должны ли каталоги данных узлов кластера cassandra быть идентичными?

Допустим, у меня есть кластер из 2 узлов, где все узлы имеют одинаковые data_file_directories (скажем, с 3 папками), настроенные в cassandra.yaml Например.

data_file_directories:
    - E:/Cassandra/data/var/lib/cassandra/data
    - K:/Cassandra/data/var/lib/cassandra/data
    - F:/Cassandra/data/var/lib/cassandra/data

Теперь предположим, что я добавляю 3-й узел в кластер с разными data_file_directories (скажем, с 1 папкой)

 data_file_directories:
    - B:/Cassandra/data/var/lib/cassandra/data

Неправильно ли так делать? Во время перебалансировки данных будут ли данные из 3 каталогов существующего узла перетекать в 1 каталог нового узла?


person Vinod Jayachandran    schedule 23.01.2017    source источник


Ответы (1)


Нейт МакКолл (нынешний председатель проекта Apache Cassandra) ответил на аналогичный вопрос здесь: Как cassandra разделяет данные пространства ключей при настройке нескольких каталогов?

Короче говоря, это должно быть хорошо. Cassandra распределяет данные по записям в data_file_directories равномерно, независимо от их количества. Кроме того, количество токенов, за которые отвечает узел, не зависит от этого параметра, поэтому вы не должны видеть никаких горячих точек или дисбаланса (по крайней мере, из-за этого).

При этом добавлю следующие моменты:

  • Указание нескольких каталогов данных может помочь, если они являются разными физическими точками подключения. Таким образом, если один диск неожиданно переполнится или выйдет из строя, узел все равно сможет продолжать работать.
  • Если бы я планировал добавить узел и сохранить их все в долгосрочной перспективе, я бы указал конфигурацию нового узла как можно ближе к исходным узлам. Это особенно помогает в большой среде, когда вы отвечаете за несколько узлов и кластеров, чтобы не помнить, чем и почему один конкретный узел в кластере отличается, если вам нужно устранить неполадки.
  • Исключением из последнего пункта было бы, если бы я решил перейти к единому каталогу данных в будущем. Но тогда у меня также был бы план вывести из эксплуатации существующие узлы и заменить их узлами с аналогичной конфигурацией.

Совет. Если есть возможность, попробуйте использовать инструмент автоматического развертывания, например Chef или Spinnaker. Таким образом, конфигурация нового узла по сути является «резаком для печенья» всех других узлов в вашем кластере.

person Aaron    schedule 23.01.2017