启用 SSL 后,Spark UI 不使用 HTTPS,而是通过 HTTP 转发到端口 0
Posted
技术标签:
【中文标题】启用 SSL 后,Spark UI 不使用 HTTPS,而是通过 HTTP 转发到端口 0【英文标题】:When SSL is enabled, Spark UI doesn't use HTTPS, but forwards to port 0 over HTTP 【发布时间】:2020-04-14 23:31:32 【问题描述】:我们使用的是 Spark 2.0.2 和 Hadoop 3.2.1。我已经在 Hadoop 上配置了 SSL,没有任何问题。但 Spark 遇到了一些麻烦。
没有 SSL,我可以启动作业并查看通过 Yarn 代理的 Spark UI。
启用 SSL 后,我仍然可以启动作业并运行完成,但无法访问 Spark Web UI。 Yarn 链接到 ApplicationMaster 代理,该代理失败并显示 java.net.ConnectException: Connection refused (Connection refused)
挖掘作业的标准输出,我看到这样的行:
2020-04-14 16:21:57,258 INFO server.ServerConnector: Started ServerConnector@1484944fHTTP/1.10.0.0.0:40809
2020-04-14 16:21:57,303 INFO server.ServerConnector: Started ServerConnector@799e8b3aSSL-HTTP/1.10.0.0.0:36015
2020-04-14 16:21:57,303 INFO server.Server: Started @5614ms
2020-04-14 16:21:57,304 INFO util.Utils: Successfully started service 'SparkUI' on port 40809.
2020-04-14 16:21:57,309 INFO ui.SparkUI: Bound SparkUI to 0.0.0.0, and started at https://10.10.75.40:40809
如果我打电话给https://10.10.75.40:40809
,我会收到一个错误,指出它不是 SSL。
如果我致电 http://10.10.75.40:40809
,我会收到虚假重定向到端口 10.10.75.40:0。
如果我调用 https://10.10.75.40:36015
并忽略证书错误,或者如果我通过正确的主机名调用,我会被重定向到 RM 的 :8090/proxy/redirect
,这会再次引发 500 错误。
我的配置包括:
spark.ssl.enabled true
spark.ssl.keyStore /etc/sslmate/STAR.mtv.qxxxxxxxxd.com.jks
spark.ssl.keyStorePassword _the password_
spark.ssl.trustStore /etc/sslmate/STAR.mtv.qxxxxxxxxd.com.jks
spark.ssl.trustStorePassword _the password_
spark.ssl.protocol TLSv1.2
我也尝试过显式设置端口,但无济于事:
spark.ssl.ui.port 4440
spark.ssl.history.port 18480
spark.ui.driver.port 2020
spark.ssl.ui.driver.port 2420
【问题讨论】:
【参考方案1】:我无法通过 Apache 找到此文档,但我发现 a note from MapR 让我工作:
在 YARN 上运行 Spark 时不需要 Spark UI SSL,因为 YARN 协议提供了加密。要禁用 Spark SSL,请将
spark.ssl.ui.enabled false
添加到每个 spark 节点上的spark-defaults.conf
文件中。
以这种方式配置时,ResourceManager 通过:8090/proxy/redirect
类型的 URL 正确提供 Spark UI。在stderr
中,我看到了以下几行的输出:
2020-04-14 17:36:38,098 INFO server.ServerConnector: Started ServerConnector@7ef020c8HTTP/1.10.0.0.0:45951
2020-04-14 17:36:38,098 INFO server.Server: Started @7871ms
2020-04-14 17:36:38,107 INFO util.Utils: Successfully started service 'SparkUI' on port 45951.
2020-04-14 17:36:38,113 INFO ui.SparkUI: Bound SparkUI to 0.0.0.0, and started at http://10.10.31.230:45951
【讨论】:
以上是关于启用 SSL 后,Spark UI 不使用 HTTPS,而是通过 HTTP 转发到端口 0的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 SSL 配置的情况下使用 spring boot 和 tomcat 启用 http2
启用 SSL 证书后,woocommerce 结帐时仍然出现 SSL 连接错误
window服务器禁用默认的ssl2.0和ssl3.0只启用启用tls1.2保证安全