如何在 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
我有一个启动 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