Где состояние операций с сохранением состояния сохранено в кластере искр - PullRequest
1 голос
/ 05 июня 2019

Я экспериментировал с 'flatMapGroupsWithState' со структурированной потоковой передачей Spark, идея интересная, но теперь я спрашиваю себя из-за распределенной природы Spark, где хранится эта информация о состоянии ....

Допустим, у меня есть кластер 10, будут ли все 10 распределять нагрузку хранилища для хранения этой информации о состоянии, или есть риск того, что один узел в кластере может быть перегружен?

Я где-то читал, что объект состояния должен быть Java Serialisable,учитывая, что Java-сериализация крайне неэффективна, есть ли способ настроить ее для использования Protobuffer или Avro и т. д. ...

Thx для ответов ..

1 Ответ

1 голос
/ 30 июня 2019

где хранится эта информация о состоянии ....

О исполнителях.

По умолчанию существует 200 хранилищ состояний, поскольку имеются разделы.Вы можете изменить его, используя spark.sql.shuffle.partitions свойство конфигурации.Это дает вам то, что количество разделов эквивалентно количеству государственных хранилищ.Это также говорит о том, что все, что вы используете в качестве ключей группировки, будет перетасовывать ваши данные между разделами, и (скорее всего) некоторые из доступных хранилищ состояний вообще не будут иметь состояния (будут пустыми).

Давайтескажем, у меня есть кластер 10, все 10 будут распределять нагрузку на хранилище, чтобы сохранить эту информацию о состоянии, или есть риск того, что один узел в кластере может быть перегружен?

Да, но это контролируется группировкой ключейи разделы - код, который пишет разработчик Spark.

Я где-то читал, что объект State должен быть Java Serialisable, учитывая, что сериализация Java крайне неэффективна

Не нужно думатьо сериализации, поскольку хранилища состояний являются локальными для задач (для исполнителей).

, есть ли способ настроить это для использования Protobuffer или Avro и т. д. *

Конечно.Вы должны написать свою собственную реализацию хранилища состояний.По умолчанию есть один-единственный HDFSBackedStateStoreProvider, который настроен с использованием spark.sql.streaming.stateStore.providerClass свойства внутренней конфигурации.

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