spark-submit遇到PKIX路径构建失败-问答-阿里云开发者社区-阿里云

开发者社区> 社区小助手> 正文

spark-submit遇到PKIX路径构建失败

2018-12-12 18:14:52 3300 1

我在Google Kubernetes Engine上有集群节点,我做spark-submit来运行一些spark工作。(我没有使用spark-submit,我使用java代码启动提交,但它们本质上是调用相同的Scala类,即SparkSubmit.class)

在我的情况下,我有两个集群,我可以通过使用gcloud命令在我的笔记本电脑上连接。

例如

gcloud container clusters get-credentials cluster-1
gcloud container clusters get-credentials cluster-2
当我连接到cluster-1,并且spark-submit正在提交到cluster-1时,它可以工作。但是,当我运行第二个gcloud命令并仍然提交到cluster-1时,它将无法工作,并显示以下堆栈轨道(删节版本)

io.fabric8.kubernetes.client.KubernetesClientException: Failed to start websocket
at io.fabric8.kubernetes.client.dsl.internal.WatchConnectionManager$2.onFailure(WatchConnectionManager.java:194)
at okhttp3.internal.ws.RealWebSocket.failWebSocket(RealWebSocket.java:543)
at okhttp3.internal.ws.RealWebSocket$2.onFailure(RealWebSocket.java:208)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:148)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
我一直在寻找一段时间没有成功。主要问题可能是当spark-submit启动时,它会在本地机器上搜索与Kubernetes相关的某种凭证,并且前两个gcloud命令改变的上下文搞砸了它。

我只是很好奇,当我们做spark提交时,远程K8s服务器到底知道我是谁?什么是auth过程涉及所有这些?

取消 提交回答
全部回答(1)
  • 社区小助手
    2019-07-17 23:20:15

    一个PKIX path building failed错误是指的Java试图打开一个SSL连接,但无法找到证书链(路径)用于验证服务器提供的证书。

    您运行的代码不信任群集提供的证书。群集可能使用自签名证书。

    从命令行运行,Java在位于jre / lib / security / cacerts的信任库中查找链。作为更大环境(Tomcat,Glassfish等)的一部分运行,它将使用该环境的证书信任库。

    由于您手动启动spark_submit,因此您可能缺少指定在何处查找密钥库(服务器证书和私钥)和信任库(CA证书)的选项。这些通常指定为:

    -Djavax.net.ssl.trustStore=/somepath/truststore.jks
    -Djavax.net.ssl.keyStore=/somepath/keystore.jks
    如果您在Java 9+上运行,则还需要指定StoreType:

    -Djavax.net.ssl.keyStoreType=
    -Djavax.net.ssl.trustStoreType=
    通过Java 8,密钥库始终是JKS。从Java 9开始,它们也可以是PKCS12。

    对于自签名密钥,您可以从密钥库导出它,并将其作为可信证书导入信任库。

    0 0
相关问答

40

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 144256浏览量 回答数 40

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 222966浏览量 回答数 162

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333846浏览量 回答数 8

13

回答

[@饭娱咖啡][¥20]我想知道 Java 关于引用那一块的知识

心意乱 2018-10-31 18:44:12 142131浏览量 回答数 13

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292263浏览量 回答数 110

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146766浏览量 回答数 22

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643087浏览量 回答数 18

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145597浏览量 回答数 31

42

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 135494浏览量 回答数 42

10

回答

[@墨玖tao][¥20]为什么流式处理框架都是 java 写成的,JVM 是不是在流和批存在着特殊优势。还有分布式资源调度,感觉Mesos 的成长速度跟不上 Yarn。这是为什么?

管理贝贝 2018-10-23 13:18:03 136120浏览量 回答数 10
+关注
社区小助手
社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。
12
文章
824
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载