2

我是 Spark 的新手,我们目前正在使用 spark-java 从 Oracle 数据库创建 orc 文件。我能够配置连接

sqlContext.read().jdbc(url,table,props)

但是,我在属性中找不到任何方法来指定 trustStore 或 trustStoreType。有人可以帮助我了解如何指定这些属性吗?

我已经尝试将属性填充为

 props.put("trustStore", "<PATH_TO_SSO>");
 props.put("trustStoreType", "sso");

但这对我不起作用

更新 1:我已经尝试了 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
4

1 回答 1

0

首先(这个答案归功于 Xephi)属性是和。javax.net.ssl.trustStorejavax.net.ssl.trustStoreType

第二个问题是trustStore应该可以在每个执行程序节点上访问。能够从驱动程序访问它是不够的。

于 2018-02-06T21:31:34.670 回答