如何从Spark as a Service笔记本连接到BigInsights on Cloud上运行的远程配置单元?

时间:2016-05-09 06:45:07

标签: apache-spark ibm-cloud biginsights

我想使用jdbc从spark笔记本连接到BigInsights上运行的hive服务。 jdbc url格式为:

jdbc:hive2://${env.hostname}:10000/default;ssl=true;sslTrustStore=./truststore.jks;trustStorePassword=mypassword;

正如您在网址中看到的,此连接需要信任库。我应该如何使信任库可用作服务?

更新1:

  • 证书不是由知名的CA颁发。
  • 租户无法访问服务上的JRE / JDK。

更新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?

2 个答案:

答案 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可作为服务访问的位置。