Как я могу увеличить производительность при записи искровых данных в cassandra? - PullRequest
0 голосов
/ 08 мая 2019

У меня проблемы с производительностью при записи искровых данных в cassandra. У меня проблемы с производительностью в двух случаях:

  1. Искра ленивая. Когда я вызываю «persist», Spark начинает выполнять «join», «groupBy», «partitionBy», «select», «filter». Я также использую UDFS. Таблицы имеют от 30 до 900 миллионов строк (до объединения). Операция «упорство» требует много времени.
  2. Кроме того, запись в Кассандру (коэффициент репликации = 3) требует много времени. В большинстве случаев я выполняю операции «добавления», а иногда я делаю «обновления». У 3 базовых таблиц (до их объединения) не более 3 разделов_ключей и 2 кластеризации_ключей. Разделы довольно маленькие (около 450 строк на раздел).

Что я могу сделать, чтобы увеличить производительность? Я попробовал несколько вещей, например создание вторичного индекса, запись только небольшого количества данных на кассандру (т.е. Сначала я фильтрую данные, затем сохраняю их, а затем записываю результат в cassandra).

Я использую Spark (версия 1.6.2) для записи в Apache Cassandra 3.7 (один сервер с 16 ядрами и 499 ГБ ОЗУ). Эта машина делится поровну на 4 виртуальных работника

каждый работник: - 4 ядра (серверный процессор Intel (x86_64 с 2659 981 МГц)) - виртуальные машины - 124,8 ГБ ОЗУ - диск объемом 1 ТБ - операционная система: CentOS Linux выпуск 7.3.1611


Другое дело, что иногда я получаю сообщение об ошибке «Недостаточно реплик, доступных для запроса при согласованности LOCAL_QUORUM (2 требуется, но только 1 работает)», при чтении данных (сохраняйте данные Cassandra на фрейме данных spark). Это происходит, потому что 1 реплика не найдена, хотя она существует. Почему эта проблема возникает при чтении, а не только при записи? Или эта проблема возникает из-за тайм-аута кассандры? Иногда у меня также возникает эта проблема при записи искрового фрейма данных в Кассандру. Это происходит, потому что больше нельзя делать реплики?

Я использую коэффициент репликации 3.

...