2016-09-07 3 views
0

В кластере Cassandra, как мы можем обеспечить, чтобы все узлы имели почти равные данные, вместо этого один узел имеет больше данных, а другой - очень меньше.Cassandra cluster - Хранить равные данные между узлами

При возникновении такой сценарий, какие наиболее эффективные практики

Благодаря

+0

Если вы предоставите вывод состояния «nodetool status», это даст дополнительный контекст для тех, кто отвечает на ваш вопрос. Ура! – flightc

+0

Возможно, вам захочется взглянуть на ваш ключ раздела. ключ раздела решает, куда ваши данные идут –

+0

. Главное, чтобы убедиться, что в вашем первичном ключе (но не слишком много) существует достаточная изменчивость. Ваш первичный ключ хэшируется, а затем используется ключ раздела для назначения данных узлу. Также разделы не разделены между узлами. Таким образом, если много ваших данных имеет один и тот же первичный ключ, тогда эти данные будут храниться на одном узле. Это также называется горячей точкой. – LHWizard

ответ

0

Это нормально ожидать небольшое изменение 5-10%. Наиболее распространенными причинами являются распределение ваших разделов, возможно, не будет по-настоящему случайным (больше разделов на некоторых узлах), и могут быть большие различия в размерах разделов (наименьший раздел составляет несколько килобайт, но самый большой раздел - 2 ГБ).

Существует также 2 других возможных сценария.

ОДНОГО ЗНАКА КЛАСТЕРНОЕ

Если маркеры не рассчитаны правильно, некоторые узлы могут иметь больший диапазон маркеров по сравнению с другими. Используйте token generation tool, чтобы получить список жетонов, которые правильно распределены по кольцу.

Если кластер развернут с помощью DataStax Enterprise, самый простой способ - rebalance your cluster with OpsCenter.

VNODES Кластер

Убедитесь, что вы выделили такое же количество жетонов в cassandra.yaml с num_tokens директивы.

0

Если вы не используете ByteOrderedPartitioner для своего кластера, этого не должно произойти. См. Документацию DataStax here для получения дополнительной информации о доступных разделителях и почему это не должно (обычно).

Смежные вопросы