при выполнении действия oozie Sqoop не удается импортировать данные в hive
Вопрос
Я столкнулся с проблемой при выполнении действия oozie sqoop.В журналах я вижу, что sqoop может импортировать данные во временный каталог, затем sqoop создает скрипты hive для импорта данных.
При импорте временных данных в hive происходит сбой.
В журналах я не получаю никаких исключений.
Ниже приведено действие sqoop, которое я использую.
<workflow-app name="testSqoopLoadWorkflow" xmlns="uri:oozie:workflow:0.4">
<credentials>
<credential name='hive_credentials' type='hcat'>
<property>
<name>hcat.metastore.uri</name>
<value>${HIVE_THRIFT_URL}</value>
</property>
<property>
<name>hcat.metastore.principal</name>
<value>${KERBEROS_PRINCIPAL}</value>
</property>
</credential>
</credentials>
<start to="loadSqoopDataAction"/>
<action name="loadSqoopDataAction" cred="hive_credentials">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<job-xml>/tmp/hive-oozie-site.xml</job-xml>
<configuration>
<property>
<name>oozie.hive.defaults</name>
<value>/tmp/hive-oozie-site.xml</value>
</property>
</configuration>
<command>job --meta-connect ${SQOOP_METASTORE_URL} --exec TEST_SQOOP_LOAD_JOB</command>
</sqoop>
<ok to="end"/>
<error to="kill"/>
</action>
Ниже приведено задание sqoop, которое я использую для импорта данных.
sqoop job --meta-connect ${SQOOP_METASTORE_URL} --create TEST_SQOOP_LOAD_JOB -- import --connect '${JDBC_URL}' --table testTable -m 1 --append --check-column pkId --incremental append --hive-import --hive-table testHiveTable;
В журналах mapred я получаю следующее исключение.
72285 [main] INFO org.apache.sqoop.hive.HiveImport - Loading uploaded data into Hive
Intercepting System.exit(1)
<<< Invocation of Main class completed <<<
Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.SqoopMain], exit code [1]
Oozie Launcher failed, finishing Hadoop job gracefully
Oozie Launcher ends
Пожалуйста, предложите.
Решение
Это кажется типичным Импорт Sqoop в Hive работа.Таким образом, похоже, что Sqoop успешно импортировал данные в HDFS и не может загрузить эти данные в Hive.
Вот некоторая предыстория того, что происходит...Oozie запускает отдельное задание (которое будет выполняться на любом узле в вашем кластере hadoop) для выполнения команды Sqoop.Команда Sqoop запускает отдельное задание для загрузки данных в HDFS.Затем, в конце задания Sqoop, sqoop запускает скрипт hive для загрузки этих данных в Hive.
Поскольку теоретически это выполняется с любого узла в вашем кластере Hadoop, интерфейс командной строки hive должен быть доступен на каждом узле и взаимодействовать с одним и тем же хранилищем метафор.Хранилище метафор улья должно быть запущено в удаленном режиме.
Самая обычная проблема заключается в том, что Sqoop не может связаться с правильным хранилищем метафор.Основными причинами этого, как правило, являются:
Служба метастазирования улья это не работает.Он должен быть запущен в удаленном режиме и должна быть запущена отдельная служба.Вот быстрый способ проверить, работает ли он:
сервисный улей-статус метахрана
hive-site.xml
не содержитhive.metastore.uris
.Вот примерhive-site.xml
сhive.metastore.uris
установленный:<configuration> ... <property> <name>hive.metastore.uris</name> <value>thrift://sqoop2.example.com:9083</value> </property> ... </configuration>
hive-site.xml
не включено в ваше действие Sqoop (или его свойства).Попробуйте добавить свой hive-site.xml в<file>
элемент в вашем действии Sqoop.Вот пример workflow.xml с<file>
в нем:<workflow-app name="sqoop-to-hive" xmlns="uri:oozie:workflow:0.4"> ... <action name="sqoop2hive"> ... <sqoop xmlns="uri:oozie:sqoop-action:0.2"> ... <file>/tmp/hive-site.xml#hive-site.xml</file> </sqoop> ... </action> ... </workflow-app>
Другие советы
Это похоже на ошибку в sqoop.Я не уверен в Jira #.Hortonworks упомянул, что проблема все еще не решена даже в версии HDP 2.2.
@abeaamase - я хочу попробовать использовать ваше решение.
Просто хочу проверить, работает ли приведенные ниже решения для SQooP + Imipe Imipe в одном одиночном задании Oozie?
. ... ... ... /tmp/hive-site.xml#hive-site.xml. ... ...
Если вы используете CDH, то проблема может быть связана с конфликтами зависимости от Jive MetaStore.