Как справиться с противодавлением в базах данных при использовании Apache Spark? - PullRequest
0 голосов
/ 16 ноября 2018

Мы используем Apache Spark для выполнения ETL каждые 2 часа.

Иногда Spark оказывает большое давление на базы данных, когда выполняется операция чтения / записи.

Для Spark Streaming я вижу конфигурацию backpressure на kafka.

Есть ли способ решить эту проблему в пакетной обработке?

1 Ответ

0 голосов
/ 16 ноября 2018

Противодавление на самом деле просто модное слово для обозначения настройки максимальной скорости приема.Так что на самом деле это не работает так, как вы думаете.

То, что должно быть сделано здесь, на самом деле на стороне чтения.

Теперь при классическом использовании JDBC коннекторы jdbc имеют свойство fetchSize для PreparedStatement с.Таким образом, в основном вы можете подумать о настройке этого fetchSize с учетом сказанного в следующих ответах:

К сожалению, это может решить не все ваши проблемы с производительностьюваш RDBMS.

Что вы должны знать, это то, что по сравнению с базовым ридером jdbc, который работает на одном работнике, при разбиении данных с использованием целочисленного столбца или последовательности предикатов, при загрузке данных в распределенномрежим, но представьте пару проблем.В вашем случае большое количество одновременных чтений может легко ограничить базу данных.

Чтобы справиться с этим, я предлагаю следующее:

  • Если доступно, рассмотрите возможность использования специализированных источников данных через JDBCсоединения.
  • Рассмотрите возможность использования специализированных или универсальных инструментов массового импорта / экспорта, таких как Postgres COPY или Apache Sqoop.
  • Обязательно поймите последствия для производительности различных вариантов источников данных JDBC, особенно при работе с производственной базой данных.
  • Рассмотрите возможность использования отдельной реплики для заданий Spark.

Если вы хотите узнать больше о Чтение данных с использованием источника JDBC , я предлагаю вам прочитать следующее:

Отказ от ответственности: Я являюсь сотрудником- автор этого репо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...