2016-12-21 4 views
0

Я использую Cloudera Quick Start Docker изображениеSqoop улей импорт из oozie

Quickstart изображение установлен MySQL в нем. Когда я использую следующий sqoop команду из командной строки для импорта категорий таблицы она работает, и я могу видеть, что категории таблица создана

sqoop import --connect jdbc:mysql://localhost/retail_db --username root --password cloudera -m 1 --table categories --hive-import --hive-overwrite

Затем я вошел в Хюэ, как пользователь Cloudera и я сделал создать новый рабочий процесс oozie с одной задачей sqoop, но когда я пытаюсь выполнить, что sqoop может загружать данные в HDFS, но когда он пытается создать таблицу улей, то она не работает

Вот как мой workflow.xml выглядит как

<workflow-app name="My_Workflow" xmlns="uri:oozie:workflow:0.5" xmlns:sla="uri:oozie:sla:0.2"> 
 
    <start to="sqoop-4467"/> 
 
    <kill name="Kill"> 
 
     <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message> 
 
    </kill> 
 
    <action name="sqoop-4467"> 
 
     <sqoop xmlns="uri:oozie:sqoop-action:0.2"> 
 
      <job-tracker>${jobTracker}</job-tracker> 
 
      <name-node>${nameNode}</name-node> 
 
      <command>import --connect jdbc:mysql://localhost/retail_db --username root --password cloudera -m 1 --table categories --hive-import --hive-overwrite 
 
</command> 
 
     </sqoop> 
 
     <ok to="End"/> 
 
     <error to="Kill"/> 
 
      <sla:info> 
 
      <sla:nominal-time>${nominal_time}</sla:nominal-time> 
 
      <sla:should-end>${30 * MINUTES}</sla:should-end> 
 
      </sla:info> 
 
    </action> 
 
    <end name="End"/> 
 
</workflow-app>

Это как мой файл job.properties выглядит

oozie.use.system.libpath=True 
 
security_enabled=False 
 
dryrun=False 
 
nameNode=hdfs://quickstart.cloudera:8020 
 
nominal_time=2016-12-20T20:53Z 
 
jobTracker=quickstart.cloudera:8032

После того, как задание не удалось, когда я проверил/пользователя/дом/Cloudera Я могу видеть папку категорий с данными, но я не вижу, как создается таблица улей. Это ошибка, что я вижу в jobhistory сервера для неисправной работы

Sqoop command arguments : 
 
      import 
 
      --connect 
 
      jdbc:mysql://localhost/retail_db 
 
      --username 
 
      root 
 
      --password 
 
      cloudera 
 
      -m 
 
      1 
 
      --table 
 
      categories 
 
      --hive-import 
 
      --hive-overwrite 
 
Fetching child yarn jobs 
 
tag id : oozie-3ff81b7743470e73dcb44de6729a66d9 
 
Child yarn jobs are found - 
 
================================================================= 
 

 
>>> Invoking Sqoop command line now >>> 
 

 
6223 [uber-SubtaskRunner] WARN org.apache.sqoop.tool.SqoopTool - $SQOOP_CONF_DIR has not been set in the environment. Cannot check for additional configuration. 
 
6302 [uber-SubtaskRunner] INFO org.apache.sqoop.Sqoop - Running Sqoop version: 1.4.6-cdh5.7.0 
 
6336 [uber-SubtaskRunner] WARN org.apache.sqoop.tool.BaseSqoopTool - Setting your password on the command-line is insecure. Consider using -P instead. 
 
6336 [uber-SubtaskRunner] INFO org.apache.sqoop.tool.BaseSqoopTool - Using Hive-specific delimiters for output. You can override 
 
6336 [uber-SubtaskRunner] INFO org.apache.sqoop.tool.BaseSqoopTool - delimiters with --fields-terminated-by, etc. 
 
6367 [uber-SubtaskRunner] WARN org.apache.sqoop.ConnFactory - $SQOOP_CONF_DIR has not been set in the environment. Cannot check for additional configuration. 
 
6654 [uber-SubtaskRunner] INFO org.apache.sqoop.manager.MySQLManager - Preparing to use a MySQL streaming resultset. 
 
6666 [uber-SubtaskRunner] INFO org.apache.sqoop.tool.CodeGenTool - Beginning code generation 
 
7250 [uber-SubtaskRunner] INFO org.apache.sqoop.manager.SqlManager - Executing SQL statement: SELECT t.* FROM `categories` AS t LIMIT 1 
 
7279 [uber-SubtaskRunner] INFO org.apache.sqoop.manager.SqlManager - Executing SQL statement: SELECT t.* FROM `categories` AS t LIMIT 1 
 
7281 [uber-SubtaskRunner] INFO org.apache.sqoop.orm.CompilationManager - HADOOP_MAPRED_HOME is /usr/lib/hadoop-mapreduce 
 
9303 [uber-SubtaskRunner] INFO org.apache.sqoop.orm.CompilationManager - Writing jar file: /tmp/sqoop-yarn/compile/4fd8773510dfe4082d136b2ab7d27eb3/categories.jar 
 
9314 [uber-SubtaskRunner] WARN org.apache.sqoop.manager.MySQLManager - It looks like you are importing from mysql. 
 
9314 [uber-SubtaskRunner] WARN org.apache.sqoop.manager.MySQLManager - This transfer can be faster! Use the --direct 
 
9314 [uber-SubtaskRunner] WARN org.apache.sqoop.manager.MySQLManager - option to exercise a MySQL-specific fast path. 
 
9314 [uber-SubtaskRunner] INFO org.apache.sqoop.manager.MySQLManager - Setting zero DATETIME behavior to convertToNull (mysql) 
 
9318 [uber-SubtaskRunner] INFO org.apache.sqoop.mapreduce.ImportJobBase - Beginning import of categories 
 
9388 [uber-SubtaskRunner] WARN org.apache.sqoop.mapreduce.JobBase - SQOOP_HOME is unset. May not be able to find all job dependencies. 
 
10238 [uber-SubtaskRunner] INFO org.apache.sqoop.mapreduce.db.DBInputFormat - Using read commited transaction isolation 
 
29055 [uber-SubtaskRunner] INFO org.apache.sqoop.mapreduce.ImportJobBase - Transferred 1.0049 KB in 19.659 seconds (52.3425 bytes/sec) 
 
29061 [uber-SubtaskRunner] INFO org.apache.sqoop.mapreduce.ImportJobBase - Retrieved 58 records. 
 
29076 [uber-SubtaskRunner] INFO org.apache.sqoop.manager.SqlManager - Executing SQL statement: SELECT t.* FROM `categories` AS t LIMIT 1 
 
29097 [uber-SubtaskRunner] 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, uploading action data to HDFS sequence file: hdfs://quickstart.cloudera:8020/user/cloudera/oozie-oozi/0000012-161221020706124-oozie-oozi-W/sqoop-4467--sqoop/action-data.seq 
 

 
Oozie Launcher ends 
 

 

ответ

1

сделал скопировать улей-site.xml в HDFS? Что будет делать или вы можете импортировать таблицу hdfs с использованием --target-dir и установить местоположение таблицы улей, чтобы указать этот путь

+0

где в hdfs? –

+0

скопируйте его где-нибудь и укажите путь hdfs в workflow.xml как hdfspath/hive-site.xml # hive.site.xml user3837299

+0

, определяющий путь hdfs и указав таблицу улья в это место проще, так как вы можете обнаружить проблемы с локализацией правильный hive = site.xml, если вы используете hortonworks – user3837299

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