Я отслеживал рост некоторых больших таблиц Кассандры, используя Spark rdd.count(). До сих пор ожидаемое поведение было последовательным, количество строк постоянно растет.Устраняет ли очистка nodetool Apache Spark rdd.count() таблицы Cassandra?
Сегодня я провел nodetool cleanup
на одном из семян и, как обычно, пробежал 50 минут.
А теперь rdd.count() возвращает одну треть строк это было раньше ....
ли я уничтожить данные с помощью nodetool очистки? Или число Spark недостоверно и подсчитывает ключи от призраков? У меня не было ошибок во время очистки, и много ничего не показывали из обычного. До настоящего времени это казалось успешной операцией.
Обновление 2016-11-13
Оказывается документация Cassandra подставил меня за потерю более 25 миллионов строк данных.
The documentation явно:
статус Использование nodetool для убедитесь, что узел полностью бутстрапированная и все остальные узлы вверх (ООН), а не в любом другом государстве. После того, как все новые узлы запущены, выполните очистку nodetool на каждом ранее существующих узлов, чтобы удалить ключи, которые больше не принадлежат этим узлам. Дождитесь завершения очистки на одном узле перед запуском очистки nodetool на следующем узле.
Очистка можно безопасно отложить для использования в нерабочее время.
Ну вы проверить состояние других узлов с помощью nodetool status
и все они UP и Normal (ООН), но вот поймать, вы также должны работать команда nodetool describecluster
, где вы можете обнаружить, что схемы не синхронизировались.
Мои схемы не синхронизировались, и я запускал очистку, когда все узлы были UN, вверх и нормально работали в соответствии с документацией. В документации Cassandra не упоминается nodetool describecluster
после добавления новых узлов.
Так что я весело добавил узлы, дождался, пока они не станут UN (Up/Normal), и проведет очистку.
В результате ушло более 25 миллионов строк данных. Надеюсь, это поможет другим избежать этой опасной ловушки. В основном документация Datastax позволяет вам уничтожить данные, рекомендуя cleanup
как шаг процесса добавления новых узлов.
На мой взгляд, этот шаг очистки должен быть удален из новой документации процедуры узла. В другом месте следует упомянуть, что очистка является хорошей практикой, но не в том же разделе, что и добавление новых узлов ... это как рекомендация rm -rf /
как один из шагов для удаления вирусов. Конечно, удалит вирус ...
Спасибо, Араванд Р. Яррам за ваш ответ, я пришел к тому же выводу, что и ваш ответ, и пришел сюда, чтобы обновить это. Цените свои отзывы.
Оказывается, это именно то, что произошло. Это настолько разочаровывает, что в документации Cassandra говорится о том, что после добавления узлов явно выполняется очистка. –