Сохранение данных из SparkStreaming Workers в базу данных

В SparkStreaming следует перенести часть сохранения на другой уровень, поскольку контекст SparkStreaming недоступен, когда мы используем SparkCassandraConnector, если наша база данных - cassandra. Более того, даже если мы используем какую-то другую базу данных для сохранения наших данных, нам нужно создавать соединение с воркером каждый раз, когда мы обрабатываем пакет rdds. Причина в том, что объекты подключения не сериализуются.

  1. Рекомендуется ли создавать / закрывать связи у воркеров?

  2. Это сделало бы нашу систему тесно связанной с существующей базой данных, завтра мы можем изменить базу данных


person Naresh    schedule 19.09.2016    source источник


Ответы (1)


Чтобы ответить на ваши вопросы:

  1. Да, создавать / закрывать связи у работников - это нормально. Но убедитесь, что вы не делаете этого для каждой записи. Рекомендуется делать это на уровне раздела или на уровне создания / закрытия соединений для группы записей.
  2. Вы можете отделить его, передав переменную и определив тип соединения с БД во время выполнения.

Возможный дубликат: Обработка подключения к базе данных внутри потоковой передачи искр

Прочтите эту ссылку, она должна прояснить некоторые из ваших вопросов Шаблоны проектирования для использования foreachRDD

Надеюсь на эту помощь!

person VenkatN    schedule 19.09.2016