我是Spark新手,我们目前正在使用spark-java从Oracle数据库创建orc文件。我能够用
配置连接sqlContext.read().jdbc(url,table,props)
但是,我无法在属性中找到任何指定trustStore或trustStoreType的方法。有人可以帮助我如何指定这些属性吗?
我已经尝试将属性填充为
props.put("trustStore", "<PATH_TO_SSO>");
props.put("trustStoreType", "sso");
但它对我不起作用
UPDATE1: 我已经尝试了user8371915的建议,并将sso文件放在我的两个执行器节点中。我仍然得到以下异常(删节版)
oracle.net.ns.NetException: The Network Adapter could not establish the connection
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:470)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:506)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:595)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:230)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1452)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:496)
... 23 more
Caused by: oracle.net.ns.NetException: Unable to initialize ssl context.
at oracle.net.nt.CustomSSLSocketFactory.getSSLSocketFactory(CustomSSLSocketFactory.java:325)
at oracle.net.nt.TcpsNTAdapter.connect(TcpsNTAdapter.java:117)
at oracle.net.nt.ConnOption.connect(ConnOption.java:159)
at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:428)
... 28 more
Caused by: oracle.net.ns.NetException: Unable to initialize the trust store.
at oracle.net.nt.CustomSSLSocketFactory.getTrustManagerArray(CustomSSLSocketFactory.java:413)
at oracle.net.nt.CustomSSLSocketFactory.getSSLSocketFactory(CustomSSLSocketFactory.java:309)
... 31 more
Caused by: java.security.KeyStoreException: sso not found
at java.security.KeyStore.getInstance(KeyStore.java:851)
at oracle.net.nt.CustomSSLSocketFactory.getTrustManagerArray(CustomSSLSocketFactory.java:401)
... 32 more
Caused by: java.security.NoSuchAlgorithmException: sso KeyStore not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at java.security.Security.getImpl(Security.java:695)
at java.security.KeyStore.getInstance(KeyStore.java:848)
... 33 more
答案 0 :(得分:0)
首先(Xephi的this answer)信用额度为javax.net.ssl.trustStore
和javax.net.ssl.trustStoreType
。
第二个问题是每个执行程序节点上都应该可以访问trustStore
。无法从驾驶员那里获得它。