2016-01-06 4 views
0

Я пытаюсь использовать действие Sqoop в редакторе Oozie в Hue, однако я не могу заставить его работать.Ошибки при использовании действия Sqoop в редакторе Oozie (Hue)

Вот что я пробовал до сих пор.

Я положил все в аргументах, вместо команды (http://alvincjin.blogspot.com.au/2014/06/create-sqoop-action-in-oozie-using-hue.html)

Кроме того, я пытаюсь подключиться к Teradata, поэтому я поместил банки в JDBC HDFS и добавил их в файлах. Это то, что текущий рабочий процесс выглядит в редакторе: Sqoop Action .

Определение Последовательность действий:

<workflow-app name="Sqoop_test" xmlns="uri:oozie:workflow:0.5"> 
    <start to="sqoop-b20d"/> 
    <kill name="Kill"> 
     <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 
    <action name="sqoop-b20d"> 
     <sqoop xmlns="uri:oozie:sqoop-action:0.2"> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
      <configuration> 
       <property> 
        <name>mapred.job.queue.name</name> 
        <value>development</value> 
       </property> 
       <property> 
        <name>mapred.job.name</name> 
        <value>test_sqoop</value> 
       </property> 
       <property> 
        <name>mapred.task.timeout</name> 
        <value>0</value> 
       </property> 
      </configuration> 
       <arg>import</arg> 
       <arg>--connect</arg> 
       <arg>jdbc:teradata://XXXXX</arg> 
       <arg>--query</arg> 
       <arg>select count(*) from XXXXX</arg> 
       <arg>--fetch-size</arg> 
       <arg>10000</arg> 
       <arg>--num-mappers</arg> 
       <arg>1</arg> 
       <arg>--hive-table-name</arg> 
       <arg>XXXXX.tmp_sqoop_test</arg> 
       <arg>--hive-import</arg> 
       <arg>--hive-overwrite</arg> 
       <arg>--target-dir</arg> 
       <arg>/user/dXXXXX/digital/test/tmp_sqoop_test</arg> 
       <arg>--username</arg> 
       <arg>XXXXX</arg> 
       <arg>--password</arg> 
       <arg>XXXXX</arg> 
      <file>/user/hue/oozie/workspaces/digital/lib/terajdbc4.jar#terajdbc4.jar</file> 
      <file>/user/hue/oozie/workspaces/digital/lib/teradata-connector-1.3.4-hadoop220.jar#teradata-connector-1.3.4-hadoop220.jar</file> 
     </sqoop> 
     <ok to="End"/> 
     <error to="Kill"/> 
    </action> 
    <end name="End"/> 
</workflow-app> 

Однако, я получаю эту ошибку:

2016-01-06 14:13:52,114 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(296)) - Error parsing arguments for import: 
2786 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool - Unrecognized argument: --hive-table-name 
2016-01-06 14:13:52,114 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(299)) - Unrecognized argument: --hive-table-name 
2786 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool - Unrecognized argument: XXXXX.tmp_sqoop_test 
2016-01-06 14:13:52,114 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(299)) - Unrecognized argument: tdcprdr_app_digital.tmp_sqoop_test 
2786 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool - Unrecognized argument: --hive-import 
2016-01-06 14:13:52,114 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(299)) - Unrecognized argument: --hive-import 
2786 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool - Unrecognized argument: --hive-overwrite 
2016-01-06 14:13:52,114 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(299)) - Unrecognized argument: --hive-overwrite 
2787 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool - Unrecognized argument: --target-dir 
2016-01-06 14:13:52,115 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(299)) - Unrecognized argument: --target-dir 
... 

Я был под впечатлением, что эта ошибка может быть решена путем размещения все в аргументах. Тот же код работает при запуске скрипта оболочки. Я попытался разместить команду импорта и строку подключения в разделе команд, но это даже не выполняется. Я попытался создать минималистичное действие sqoop, а также, только с запросом и оператором соединения следующим образом:

<workflow-app name="Sqoop_minimal" xmlns="uri:oozie:workflow:0.5"> 
    <start to="sqoop-eeeb"/> 
    <kill name="Kill"> 
     <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
    </kill> 
    <action name="sqoop-eeeb"> 
     <sqoop xmlns="uri:oozie:sqoop-action:0.2"> 
      <job-tracker>${jobTracker}</job-tracker> 
      <name-node>${nameNode}</name-node> 
       <arg>import</arg> 
       <arg>--connect</arg> 
       <arg>jdbc:teradata://tdXXXXX</arg> 
       <arg>--query</arg> 
       <arg>select count(*) from XXXXX</arg> 
       <arg>--target-dir</arg> 
       <arg>/user/dXXXXX/digital/test/tmp_sqoop_test</arg> 
       <arg>--username</arg> 
       <arg>XXXXX</arg> 
       <arg>--password</arg> 
       <arg>XXXXX</arg> 
      <file>/user/hue/oozie/workspaces/digital/lib/teradata-connector-1.3.4-hadoop220.jar#teradata-connector-1.3.4-hadoop220.jar</file> 
      <file>/user/hue/oozie/workspaces/digital/lib/terajdbc4.jar#terajdbc4.jar</file> 
     </sqoop> 
     <ok to="End"/> 
     <error to="Kill"/> 
    </action> 
    <end name="End"/> 
</workflow-app> 

С помощью этого процесса, я получаю очень смутное ошибку следующим образом:

>>> Invoking Sqoop command line now >>> 

2287 [main] WARN org.apache.sqoop.tool.SqoopTool - $SQOOP_CONF_DIR has not been set in the environment. Cannot check for additional configuration. 
2016-01-06 14:57:48,381 WARN [main] tool.SqoopTool (SqoopTool.java:loadPluginsFromConfDir(175)) - $SQOOP_CONF_DIR has not been set in the environment. Cannot check for additional configuration. 
2324 [main] INFO org.apache.sqoop.Sqoop - Running Sqoop version: 1.4.5.3.0.0.0-249 
2016-01-06 14:57:48,418 INFO [main] sqoop.Sqoop (Sqoop.java:<init>(92)) - Running Sqoop version: 1.4.5.3.0.0.0-249 
2339 [main] WARN org.apache.sqoop.tool.BaseSqoopTool - Setting your password on the command-line is insecure. Consider using -P instead. 
2016-01-06 14:57:48,433 WARN [main] tool.BaseSqoopTool (BaseSqoopTool.java:applyCredentialsOptions(1014)) - Setting your password on the command-line is insecure. Consider using -P instead. 
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 - 4.1.0.3.0.0.0-249.

Я попытался найти решение в Интернете, но не повезло. Любая помощь будет оценена по достоинству. Спасибо!

Уже видели и пробовали ссылки:

https://community.cloudera.com/t5/Batch-Processing-and-Workflow/Sqoop-fails-with-quot-Error-parsing-arguments-for-import-quot/td-p/31930 

http://stackoverflow.com/questions/25770698/sqoop-free-form-query-causing-unrecognized-arguments-in-hue-oozie 

ответ

1

Там нет таких argumnets для sqoop --hive-имя-таблицы использования --hive стол. Он не должен показывать нераспознанный аргумент

+0

Спасибо! Я изменил вариант на «hive-table», и это сработало, то есть в некоторой степени. Теперь он показывает ошибку «2417 [главная] ERROR org.apache.sqoop.tool.BaseSqoopTool - возникла ошибка создания менеджера баз данных: java.io.IOException: нет менеджера для строки подключения: jdbc: teradata: // XXXXX/LOGMECH = TD2 ". Я уже разместил jar-контейнер в каталоге Oozie share lib и также указал это свойство в действии sqoop: sqoop.connection.factories = com.cloudera.sqoop.manager.DefaultManagerFactory, com.cloudera.sqoop.manager.TeradataManagerFactory. –

+1

В job.properties вам необходимо указать oozie.use.system.libpath = true –

 Смежные вопросы

  • Нет связанных вопросов^_^