Spark RDD фильтр сразу после искрового потока - PullRequest
0 голосов
/ 19 сентября 2018

Я использую потоковую искру и читаю потоки из Кафки.Прочитав этот поток, я добавляю его на карту Hazelcast.

Проблема в том, что мне нужно отфильтровать значения с карты сразу после чтения потока из Кафки.

Я использую приведенный ниже код для распараллеливания значений карты.

List<MyCompObj> list = CacheManager.getInstance().getMyMap().values().stream().collect(Collectors.toList());
JavaRDD<MyCompObj> myObjRDD = sparkContext.parallelize(list);

Но в этой логике я использую JavaRDD в другой, которая называется JavaInputDStream.foreachRDD, и это вызывает проблемы с сериализацией.

Первый вопрос: как я могу запустить свое искровое задание с помощьюуправляемый событиями?

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

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Я решил свои проблемы, разделив потоковую и пакетную обработку на две части, как и должно быть.

Я использую кварц и SparkLauncher для запуска нового задания ( пример )

0 голосов
/ 21 сентября 2018

Рассматривали ли вы Hazelcast Jet ?Это потоковый движок, созданный Hazelcast.Непрерывная передача данных из Kafka в Hazelcast отказоустойчивым способом - это хлеб и масло, см. Пример кода

Jet поставляется со встроенным Hazelcast, который упрощает архитектуру для вас.

...