Создайте собственный приемник потоковой передачи искры для Mon go Oplog. Но борясь с контрольными точками.
Использовал следующее в качестве начала: spark-streaming_2.11-2.4.4-sources.jar! /Org/apache/spark/streaming/dstream/SocketInputDStream.scala
и используя:
store(docs)
Где docs
- массив объектов класса case
Я мог бы запустить другой асин * c поток в получателе в пределах контрольной точки, но это не гарантирует хотя бы раз семантику. Я хотел бы проверить контрольную точку после завершения операции. Я мог бы сохранить логику контрольных точек c в пределах receriverStream.foreachRdd
, но мне нужно было выполнить запрос min / max, чтобы получить смещение. Попытка избежать запуска дополнительного запроса.
Так что, если мы сможем отправить некоторые метаданные в блок rdd и получить их в foreachRdd
, это поможет. Или, если в приемнике есть обратный вызов для просмотра обработанных блоков, тогда можно использовать этот