创建sqoop配置单元导入作业

jdg4fx2g  于 2021-05-27  发布在  Hadoop
关注(0)|答案(3)|浏览(530)

我使用sqoop成功地将oracle表临时导入到hive表中。现在,我想创建并保存一个sqoop作业,其中包含我用于临时导入的确切参数。
但如果我说: sqoop job --create myjob --import \ --connect jdbc:mysql://host.port/foo \ --username myUserName \ --password-file file:///myfile.pwd \ --table mytable \ --create-hive-table \ --hive-import \ --hive-database my_hive_db \ --hive-table my_hive_table \ --fields-terminated-by '|' \ --hive-drop-import-delims \ --m 1 我得到一个错误: 19/03/05 14:56:41 ERROR tool.BaseSqoopTool: Error parsing arguments for job: 19/03/05 14:56:41 ERROR tool.BaseSqoopTool: Unrecognized argument: --import 19/03/05 14:56:41 ERROR tool.BaseSqoopTool: Unrecognized argument: --connect 19/03/05 14:56:41 ERROR tool.BaseSqoopTool: Unrecognized argument: jdbc:mysql:@host:port/foo 如果我删除所有的\它仍然不起作用。
如何使用配置单元导入所需的所有参数定义sqoop作业?

kpbwa7wx

kpbwa7wx1#

不确定您提供的示例是否错误,但我总是使用稍微不同的语法,其中import不是作业中的标志。
从文档来看,这两种语法对我来说似乎很熟悉:

  1. sqoop import (generic-args) (import-args)
  2. sqoop-import (generic-args) (import-args)
iyzzxitl

iyzzxitl2#

似乎是一个大逃亡的问题。行尾的反斜杠“\”字符后面不应有空格。您可以看到额外的空格:

  1. cat -A sqoop_script.sh
pqwbnv8z

pqwbnv8z3#

你失踪了 space 介于 -- 以及 import .
尝试以下语法:

  1. sqoop job --create myjob -- import \
  2. --connect jdbc:mysql://host.port/foo \
  3. --username myUserName \
  4. --password-file file:///myfile.pwd \
  5. --table mytable \
  6. --create-hive-table \
  7. --hive-import \
  8. --hive-database my_hive_db \
  9. --hive-table my_hive_table \
  10. --fields-terminated-by '|' \
  11. --hive-drop-import-delims \
  12. --m 1

相关问题