Структурированная потоковая передача Spark - плавное завершение работы с помощью сенсорного файла - PullRequest
0 голосов
/ 18 июня 2020

Я работаю над Spark Structured Streaming, что довольно легко использовать.

Я буду читать данные из Kafka и сохраняться в приемнике hdfs после синтаксического анализа JSON.

У меня почти завершил часть. Теперь проблема в том, что у нас должен быть хороший способ закрыть задание потоковой передачи без необходимости внезапного закрытия (ctrl + c или yarn -kill).

Я использовал следующие параметры sparkConf.set("spark.streaming.stopGracefullyOnShutdown","true"), но бесполезно.

Мое требование - когда запущено задание потоковой передачи, оно должно останавливаться, когда какой-либо сенсорный файл создается в hdfs или Linux Путь EN.

https://jaceklaskowski.gitbooks.io/spark-structured-streaming/spark-sql-streaming-demo-StreamingQueryManager-awaitAnyTermination-resetTerminated.html

В этой ссылке выше они создают поток на фиксированную продолжительность. Но мне нужно что-то вроде того, что выходит из исполнения, когда создается какой-то фиктивный файл.

Я новичок ie, поэтому, пожалуйста, вам нужна ваша помощь для этого.

Заранее спасибо.

1 Ответ

1 голос
/ 18 июня 2020

Я не уверен, действительно ли работает sparkConf.set("spark.streaming.stopGracefullyOnShutdown","true"). Некоторые утверждают, что это действительно работает, а некоторые нет.

  • В любом случае речь идет о прямом уничтожении или постепенной остановке.

  • Вам нужно убить JVM, или, если в Databricks есть много утилит.

Но вы не потеряете данные из-за журналов контрольной точки и упреждающей записи, которые предоставляет Spark Structured Streaming. То есть возможность без проблем восстанавливать состояние и смещения, Spark поддерживает собственное управление смещениями. Итак, как вы остановитесь, это не проблема, которая может объяснить путаницу и "but no use".

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