我在运行 Ubuntu 的计算机上创建了一台 VMWare 机器。我在那里使用演示 LDAP 设置了 Apache Knox,我目前正在尝试通过 SQuirreL 设置到 Knox 的连接字符串。我不能使用 Hortonworks Sandboxes,因为我需要使它与 Cloudera 下的 Hive 兼容。在开始配置 Knox 之前,我希望能够先使用 Hive JDBC 驱动程序连接到它。这是我到目前为止的字符串:
jdbc:hive2://<host>:8443/;ssl=1;sslTrustStore=/gateway.jks;trustStorePassword=<master secret>?hive.server2.transport.mode=http;httpPath=gateway/default/hive
我的具体问题是:
我应该使用什么路径
sslTrustStore
?它目前位于/home/<user>/Downloads/knox-1.0.0/data/security/keystores/gateway.jks
. 我用完整路径尝试了相同的字符串,但仍然没有运气。我应该用来做
httpPath
什么?我的虚拟机上没有专门的 Hive,因为 Knox 将使用 Hive 连接到 Hadoop 节点。我在连接字符串中还缺少什么吗?
在 SQuirreL 中,收到错误消息并单击“堆栈跟踪”后,这是我得到的一般要点:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: java.sql.SQLException: [Cloudera][HiveJDBCDriver](500164) Error initialized or created transport for authentication: \home\anudeep\Downloads\knox-1.0.0\data\security\keystores\gateway.jks (The system cannot find the path specified).
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
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(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)