我想使用jdbc从spark笔记本连接到BigInsights上运行的hive服务。 jdbc url格式为:
jdbc:hive2://${env.hostname}:10000/default;ssl=true;sslTrustStore=./truststore.jks;trustStorePassword=mypassword;
正如您在网址中看到的,此连接需要信任库。我应该如何使信任库可用作服务?
更新1:
更新2:
我可以使用以下命令添加证书和信任库:
with open('certificate', 'w') as f:
f.write('''
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
''')
!keytool -import -trustcacerts -alias biginsights -file certificate -keystore truststore.jks -storepass mypassword -noprompt
现在问题的最后一部分是how to add a jar to python notebook on bluemix spark?
答案 0 :(得分:1)
这可能是一种奇怪的方式(未尝试过): -
在Notebook中,如果你已经不在python shell中,那么切换到python shell然后如果你可以从URL下载你的信任库,你可以这样下载并运行单元格: - !wget
如果biginsights服务器允许您使用SSH访问密钥库,请使用!scp下载信任库。
下载后,我建议尝试使用 !pwd会给你路径 / GPFS / FS01 /用户/ s027-20bcfe6e4297e8-2c631c8ff999 /笔记本/笔记本
如果你这样做,你可以看到你下载的信任文件。 看看你是否可以在JDBC URL中提供信任的完全绝对路径。
谢谢, 查尔斯。
答案 1 :(得分:0)
首先查看SSL证书是否由“众所周知的”CA权威机构颁发。通过“众所周知”,我的意思是那些签名证书已经包含在jdk信任库中的CA权限。如果是,请从jdk文档中找出信任库的位置和名称,并在sslTrustStore参数中提供。如果不是,则必须下载证书,添加到信任库并将信任库上载到spark可作为服务访问的位置。