Spark Streaming - обновить статические данные - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть задание Spark Streaming, которое при запуске запрашивает Hive и создает объект Map [Int, String], который затем используется для частей вычислений, выполняемых заданием.

Проблема Iесть то, что данные в Hive имеют потенциальные изменения каждые 2 часа.Я хотел бы иметь возможность обновлять статические данные по расписанию без необходимости каждый раз перезапускать задание Spark.

Первоначальная загрузка объекта Map занимает около 1 минуты.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 04 апреля 2019

Вы можете использовать слушателя.Который будет запускаться каждый раз, когда задание запускается для любого потока в контексте искры.Так как ваша база данных обновляется каждые два часа, нет никакого вреда, обновляя ее каждый раз, AFAIK.

sc.addSparkListener(new SparkListener() {
override def onSparkListenerJobStart(jobStart: SparkListenerJobStart) {
//load data that to the map that will be sent to executor
}


});
...