Для каждого приемника в приложении структурированной потоковой передачи оно будет независимо считывать данные из источника (например, Kafka).Это означает, что если вы читаете из одной темы А и пишете в 3 места (например, ES, Kafka, S3), это фактически установит 3 соединения с источником независимо друг от друга.
Из коробки, да,Каждый Раковина описывает свой поток выполнения.Но вы можете обойти это, не используя встроенные приемники и создавая свой собственный, который управляет записью.
Будет ли это снижение производительности?Поскольку для этого потребуется 3 независимых управляемых соединения вместо одного (подход DStream)
Вероятно.Обычно вы не хотите читать и обрабатывать одно и то же снова и снова только потому, что у вас есть более одного приемника для одного и того же источника.Опять же, вы можете приспособиться к этому, создав свою собственную раковину (которая не должна быть слишком большой работой)
Q2.Я знаю, что объединение двух потоковых данных не поддерживается.Как я могу выполнить расчеты на 2 потока?
Начиная с версии Spark 2.3 это поддерживается OOTB.
Q3.В пользовательском интерфейсе Spark Streaming есть вкладка Streaming для метрик и для просмотра пропускной способности приложения.В структурированном потоке это больше не доступно.Почему это?Намерено ли получить все показатели программно и передать их в отдельную службу мониторинга?
Вы правы.Причудливый интерфейс, который у вас был в структурированном потоке, еще не существует в SparkЯ задал Майкл Армбурст этот вопрос, и его ответ был «приоритеты», у них просто не было времени заняться созданием чего-то столь же фантастического, как у Spark Streaming, потому что они хотели втиснуть больше функций.OSS в том, что вы всегда можете внести недостающую часть самостоятельно, если вам это нужно.
В общем, структурированное потоковое вещание - это будущее Spark.В DStreams больше не вкладывается работа.Для систем с высокой пропускной способностью я могу сказать, что присоединение к структурированной потоковой передаче имеет существенное преимущество.Я переключился после того, как был выпущен 2.1, и это определенно повышение производительности, особенно в областях потоковых конвейеров с отслеживанием состояния.