2016-08-04 98 views
0

如果我有以下类型的黑斑羚的连接,我还可以使用松鼠SQL:帕拉JDBC连接:错误设置/关闭会话:开放会话错误

self.impala_con = connect(host='sql.edamame.com', port=25003, use_ssl=True, auth_mechanism="PLAIN", 
           user='edamame1', password='edamamePass') 

这里是我设置的别名在松鼠:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500151) Error setting/closing session: Open Session Error. 
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:206) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    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:745) 

enter image description here

我测试连接过程中得到了下面的错误


更新:

我也尝试下面的网址:

jdbc:impala://sql.edamame.com:25003/default;AuthMech=3;SSL=1 

,并得到了以下新的错误:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: [Simba][ImpalaJDBCDriver](500310) Invalid operation: null; 
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:206) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.awaitConnection(OpenConnectionCommand.java:132) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$100(OpenConnectionCommand.java:45) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$2.run(OpenConnectionCommand.java:115) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    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:745) 

我可能会丢失,还有什么?谢谢!

回答

0

简答题:RTFM。

长答案:Cloudera JDBC驱动程序附带80多页PDF“安装和配置指南”。不要害羞,打开它。你可以直接去附录A - 驱动设置,看看这些条目:

AuthMech的认证机制来使用。
值设置为以下数字中的一个:
  0为无认证
  1为Kerberos
  2为用户名
  3为用户名和密码

SSL
当此属性设置为1,则驱动程序通过启用SSL的套接字与Impala服务器通信。当此属性设置为0时,驱动程序不会连接到启用SSL的套接字。

所以您的网址应该像
jdbc:impala://blahblah:25003/default;AuthMech=3;SSL=1

一两件事:解决SSL握手的问题,您可以启用这个Java系统属性调试痕迹...
-Djavax.net.debug=ssl

+0

谢谢参孙,我尝试了你建议的URL,然后得到一个新的错误(请参阅问题中的更新)。你知道我错过了什么吗?谢谢! – Edamame

+0

@Edamame,我会在SSL证书验证问题上下注 - 您的服务器使用自签名证书,或者使用公司C.A.签署的证书。该信息尚未在您的JRE的默认TrustStore中列出。启用调试跟踪标志是肯定的,那么如果是这种情况,请了解Java属性'javax.net.ssl.trustStore'和'.trustStorePassword';还要学习'keytool'实用程序来创建JKS格式的自定义TrustStore。玩的开心...! –

+0

@Edamame,再想一想,一个SSL证书验证问题会对发生的事情变得更加冗长(用'javax.net.ssl.SSLHandshakeException')。谷歌关于该错误代码和ImpalaJDBCDriver,并有乐趣...! –