2016-10-30 11 views
0

Я создал рабочий процесс Sqoop в Oozie для данных sqoop из MySQL в таблицу Hive.Не удалось загрузить HiveConf в рабочий процесс Sqoop в Oozie

Если я бегу Sqoop работу в терминале, он прекрасно работать и данные были успешно добавлены в улей таблицу, но если я ставлю работу внутри Oozie и запустить его, он дает мне ошибку:

Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly. 

Encountered IOException running import job: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf 

Can кто-нибудь мне поможет?

Я использую HDP 2.5 здесь.

Ниже мои свойства файла для Oozie:

nameNode=hdfs://master.nodes:8020 
jobTracker=master.nodes:8050 
queueName=default 
examplesRoot=jas-oozie 

oozie.use.system.libpath=true 
oozie.libpath=${nameNode}/user/oozie/share/lib 
oozie.action.sharelib.for.pig=hive,pig,hcatalog 
oozie.action.sharelib.for.hive=pig,hcatalog,atlas,hive 

oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/jas-oozie-workflow.xml 
outputDir=jas 

и ниже файл XML для Oozie:

<?xml version="1.0" encoding="UTF-8"?> 

<workflow-app xmlns="uri:oozie:workflow:0.2" name="jas-import-wf"> 
    <start to="sqoop-import-air-quality-node"/> 

    <action name="sqoop-import-air-quality-node"> 
     <sqoop xmlns="uri:oozie:sqoop-action:0.2"> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
      <prepare> 
       <delete path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data"/> 
       <!-- <mkdir path="${nameNode}/user/${wf:user()}/${examplesRoot}/output-data"/> --> 
      </prepare> 
      <configuration> 
       <property> 
        <name>mapred.job.queue.name</name> 
        <value>${queueName}</value> 
       </property> 
      </configuration> 
      <arg>import</arg> 
      <arg>--connect</arg> 
      <arg>jdbc:mysql://xx.xx.xx.xx:3306/xxxx?dontTrackOpenResources=true&amp;defaultFetchSize=1000&amp;useCursorFetch=true&amp;zeroDateTimeBehavior=convertToNull</arg> 
      <arg>--driver</arg> 
      <arg>com.mysql.jdbc.Driver</arg> 
      <arg>--username</arg> 
      <arg>xx</arg> 
      <arg>--password</arg> 
      <arg>xx</arg> 
      <arg>--query</arg> 
      <arg> 
       select <fields> from <table> where $CONDITIONS 
      </arg> 
      <arg>--hive-import</arg> 
      <arg>--hive-drop-import-delims</arg> 
      <arg>--hive-overwrite</arg> 
      <arg>--hive-table</arg> 
      <arg>table</arg> 
      <arg>--target-dir</arg> 
      <arg>/user/${wf:user()}/${examplesRoot}/output-data/sqoop-import</arg> 
      <arg>-m</arg> 
      <arg>1</arg> 
     </sqoop> 
     <ok to="end"/> 
     <error to="import-air-quality-fail"/> 
    </action> 

    <kill name="import-air-quality-fail"> 
     <message>Sqoop from ICP failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 

    <end name="end"/> 
</workflow-app> 

Спасибо.

+0

Вам нужно настроить oozie доля LIB - https: //docs.hortonworks.com/HDPDocuments /HDP2/HDP-2.4.2/bk_installing_manually_book/content/setting_up_sharelib.html –

+0

В моей папке HDFS/user/oozie уже есть папка share/lib. На самом деле, если я запускаю эту команду: oozie администратор -shareliblist я получить все Lib списка – Xonos

+0

является улой-Exec баночки в списке? –

ответ

0

1) создать каталог lib в пути ${nameNode}/user/${user.name}/${examplesRoot}/

2) добавить hive-exec jar в ${nameNode}/user/${user.name}/${examplesRoot}/lib/ пути и попробуйте еще раз