Я создал машину VMWare на своем компьютере под управлением Ubuntu. Я установил там Apache Knox, используя демонстрационный LDAP, и сейчас пытаюсь настроить строку подключения к Knox через SQuirreL. Я не могу использовать Песочницы Hortonworks, потому что мне нужно сделать это совместимым с Hive под Cloudera. Прежде чем приступить к настройке 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 будет подключаться к узлу Hadoop с Hive.
Что-то еще мне не хватает в строке подключения?
В 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)