Я не могу подключиться к Hive через Hive2 action of oozie. JdbcUrl - обнаружение службы zooKeeper включено. Моя платформа данных - Hortonworks 2.6.
Изначально я пытался подключиться к beelne через скрипт на python, и этот скрипт выполнялся с помощью действия оболочки oozie. Но не смог этого сделать. Поэтому я попытался использовать действие hive2 вместо этого. Но даже это не работает. У jdbcURL для билайна нет SSL. У него включено обнаружение службы zooKeeper.
<workflow-app xmlns="uri:oozie:workflow:0.3" name="hive2-wf">
<start to="hive2-node"/>
<action name="hive2-node">
<hive2 xmlns="uri:oozie:hive2-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<jdbc-url>${jdbcURL}</jdbc-url>
<script>table_create.hql</script>
</hive2>
<ok to="end"/>
<error to="fail"/>
</action>
<kill name="fail">
<message>Hive2 (Beeline) action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
</kill>
<end name="end"/>
Я сталкиваюсь с ошибкой «org.apache.hive.jdbc.HiveConnection: Ошибка открытия сеанса».
Я попробовал с ниже свойств. Но все равно это не работает: oozie.use.system.libpath = true oozie.libpath = hdfs: // хост: 8020 / user / oozie / share / lib / lib_20180801150051 oozie.wf.application.path = hdfs: // хост/ user / pid / hive2
ПУТЬ SHARELIB ДЛЯ ДЕЙСТВИЯ #
oozie.action.sharelib.for.hive = hive, hcatalog, sqoop jdbcURL = jdbc: hive2: // хост: 2181 (кворум zookeeper) /; serviceDiscoveryMode = zooKeeper; zooKeeperNamespace = hiveserver2 hive_query = table_creation.hql
Также я заметил одну вещь. Но не знаю, насколько это актуально. Используемый мной URL JDBC имеет три различных кворума для зоопарка: jdbcURL = jdbc: hive2: // host1: 2181, host2: 2181, host3: 2181 / ; serviceDiscoveryMode = zooKeeper; zooKeeperNamespace = hiveserver2
Но когда я запускаю рабочий процесс oozie, он использует другой порт: подключение к jdbc: hive2: // host1: 2181, host2: 2181, host3: 2181 /; serviceDiscoveryMode = zooKeeper; zooKeeperNamespace = hiveserver2 Ошибка: не удалось установить соединение с jdbc: hive2: // host1: 10001 /; serviceDiscoveryMode = zooKeeper; zooKeeperNamespace = hiveserver2: код ответа HTTP: 401 (состояние = 08S01, код = 0)