如何在 Spark Worker 上启用 IP 访问过滤器?

How to enable IP access filter on Spark Worker?

我有一个启动 spark worker 的 java 应用程序:

Worker.startRpcEnvAndEndpoint(args.host(), args.port(), args.webUiPort(), args.cores(), args.memory(), args.masters(), args.workDir(), scala.Option.empty(), conf);

(见https://books.japila.pl/spark-standalone-internals/Worker/#externalshuffleservice

我现在想设置一个 IP 访问过滤器,以便我有一个可以访问该服务的 IP 地址的硬编码列表。

有没有办法配置上面的Java程序来提供这样的IP访问过滤器?

我不知道 Spark 内部网络,但从服务器 bind-address 的角度来看,你能做的最好的事情就是在特定的 interface/subnet 上隔离绑定地址 - 这将从你的args.host()

如果您想限制该子网内的特定 IP,您将需要使用 OS 防火墙,也许还可以通过代码管理它,但不能使用 Spark 库。

然后更进一步 - 限制为某些 客户端 ,而不是机器,您可以向某些机器或用户提供证书,或者以其他方式将 IP 地址编码到某些身份验证协议中,然后为 Spark 执行 ACL 策略。也许您也可以为此使用 Kerberos