【问题标题】:How to disable SSL authentication when fetching Spark packages?获取 Spark 包时如何禁用 SSL 身份验证?
【发布时间】:2021-08-24 14:58:51
【问题描述】:

我正在使用 pyspark,当我启动我的 Spark 会话时,我使用 spark.jars.package 从 Nexus 内部存储库中获取一些包。获取我设置的包:

  • spark.jars.ivySettings 指向一个 XML 文件,其中包含 Nexus 内部存储库中的位置以获取包

  • spark.driver.extraJavaOptions 设置为 -Djavax.net.ssl.trustStore= 以指向 JKS 文件,其中包含 Nexus 内部存储库中 SSL 验证所需的证书

直到最近,当我开始收到以下类型的 SSL 身份验证错误时,此设置对我来说效果很好:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:PKIX 路径构建失败: sun.security.provider.certpath.SunCertPathBuilderException:无法 找到请求目标的有效认证路径)

我正在与平台团队检查导致这些错误的原因,但同时,我想简单地禁用 SSL 验证,以便使用 spark.jars.packages 获取包,因为系统正常,因此不存在安全风险ringfenced,我们已经禁用 SSL 身份验证用于其他目的,例如安装 pip 包或使用 wget/curl 从 Nexus 下载文件。

有没有办法通过 Spark 配置来做到这一点?

【问题讨论】:

    标签: java apache-spark ssl pyspark ivy


    【解决方案1】:

    你可以传入 SPARK 选项:

    -Dcom.sun.net.ssl.checkRevocation=false
    

    【讨论】:

    • 我尝试了该选项,但由于某种原因它似乎不适用于 Spark。另见github.com/awslabs/aws-glue-libs/issues/30
    • 那是用py-spark,你也是吗?你能在它启动时用这个命令确认java进程选项吗(使用ps -aef
    • 这个问题似乎也出现在使用 spark-submit 而不是驱动程序或执行程序启动的 spark 客户端中。你可以尝试在纱线客户端模式下运行吗?驱动程序在客户端的什么位置?
    • 我正在使用 pyspark 和 yarn-client 模式。将尝试检查“ps -aef”。不要着急,因为我从我们的平台团队获得了证书文件。无论如何感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2019-09-11
    • 2016-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多