2016-05-20 2 views
1

spark docs состояние:Спарк потокового StreamingContext активное количество

Только один StreamingContext может быть активным в JVM в то же время.

Представьте себе случай, когда я планирую читать/обрабатывать данные из двух тем Кафки, где есть одна работа выборки данных из одной Кафки темы, а другие выборка данных из другой Кафка темы. Могу ли я одновременно запускать эти два задания параллельно на одном и том же кластере сложения?

Он также утверждает,

После того, как контекст был остановлен, он не может быть перезапущен.

Так что, если мне по какой-то причине нужно прекратить искру, то каким образом его перезапустить? Я вызываю это через oozie или что-то еще?

ответ

1

Могу ли я запускать эти два задания параллельно на одном кластере сложениями одновременно?

Ради простоты позволяют прояснить условия. A StreamingContext уникален в работе Spark. Если вы хотите прочитать несколько потоков внутри , то то же самое задание, вы можете сделать это, передав одинаковые StreamingContext дважды различным методам KafkaUtils.createStream.

Если у вас есть несколько заданий, которые вы отправляете Spark, то каждый может иметь свой собственный StreamingContext. Каждая работа будет иметь собственный экземпляр JVM.

Так что, если мне нужно прекратить искру по какой-то причине, то каким образом , чтобы перезапустить его?

Один из возможных способов достижения желаемого результата - использование режима кластера Spark для запуска вашего потокового задания и передачи флага --supervise. Мастер искры гарантирует, что работа будет перезапущена при сбое.

Подробнее об этом можно прочитать в документации Sparks "Submitting Applications".