Как сделать так, чтобы рабочий узел не мог изменить широковещательную переменную в спарк? - PullRequest
0 голосов
/ 20 сентября 2018

Поскольку мы можем использовать изменяемый объект в качестве широковещательной переменной в spark, это означает, что состояние этого объекта может быть легко изменено рабочими узлами.

Существует ли какой-либо подход, в котором мы можем ограничить рабочие узлыне изменять изменяемый объект?

1 Ответ

0 голосов
/ 20 сентября 2018

Объект сериализуется, рассылается всем работникам и десериализуется в каждом отдельно.Если работник мутирует объект, это повлияет только на этого работника.По сути, он уже неизменен.

Если вы хотите ограничить его, чтобы даже работники не могли мутировать в своей собственной JVM, вы должны просто использовать неизменяемый объект.При необходимости создайте неизменяемую оболочку или скопируйте ее вокруг изменяемого объекта и передайте ее.

...