#cassandra #datastax #datastax-enterprise #datastax-startup
#cassandra #datastax #datastax-enterprise #datastax-запуск
Вопрос:
У нас есть кластер DSE 5.0 из 4 компьютеров. Во время приема данных на одной из этих машин хранилась большая часть данных (100 Г), в то время как на трех других хранилось гораздо меньше (около 15 г каждая). Я не знаю, почему это произошло, и планирую провести расследование и, вероятно, задать отдельный вопрос.
Теперь я пытаюсь перебалансировать кластер. Единственный известный мне способ сделать это — нажать Cluster Actions
-> Rebalance
в OpsCenter. Перебалансировка запускается и воспроизводимо прерывается примерно через 5 минут с этой ошибкой:
Rebalance Failed: java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.net.SocketTimeoutException: Read timed out
Часть данных передается, как предложено в предварительном просмотре перебалансировки, большая часть — нет.
Журнал событий:
Error Rebalance failed: java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: java.net.SocketTimeoutException: Read timed out admin
Info Moving node xx.xx.xx.xx from token 5848419665553670365 to 2542108353485192999 NODE-04
Info Starting rebalance
В чем может быть причина и как мне ее исследовать и исправить?
Кластер развернут на 4 выделенных компьютерах в Azure.
Комментарии:
1. Не могли бы вы подробнее рассказать об этом фрагменте приема данных? Мы говорим о массовой загрузке данных или обычных операциях? Я просто пытаюсь лучше понять, почему это могло произойти в первую очередь. @helmser прав, что в обычном варианте использования с хорошей моделью данных данные должны быть равномерно распределены. По-прежнему вызывает беспокойство сбой задания балансировки, и об этом следует сообщить вашему менеджеру по работе с клиентами в DataStax, чтобы он связал вас с техническими специалистами на этом конце, если это ошибка, которую они смогут вместе с вами диагностировать и устранить.
2. @mando222 — PK — это простой хэш SHA, сгенерированный из остальных данных, поэтому я предположил, что PK хорошо распределены. Еще не удалось должным образом проанализировать фактическое распределение. В любом случае, неспособность перебалансировать тоже выглядит для меня ошибкой.
Ответ №1:
Вам не нужно будет перебалансировать кластер после загрузки данных. Вероятно, вы захотите глубже изучить свою модель данных и убедиться, что ваш ключ раздела — это то, что будет равномерно распределять данные по кольцу. В этом случае я подозреваю горячие точки.
Комментарии:
1. Спасибо хелмсеру, это звучит вполне правдоподобно. Я должен проанализировать распределение PK. Однако это не отвечает на вопрос — я предполагаю, что сбой функции перебалансировки, вероятно, имеет и другие причины. В конце концов, он предлагается в официальном пользовательском интерфейсе, вероятно, именно для этой ситуации, поэтому я предположил, что он должен работать лучше. Вы случайно не знаете, что можно было бы сделать с тайм-аутом?