来自带有split-limit参数的mysql的sqoop错误

时间:2016-12-03 12:07:36

标签: mysql sqoop

enter image description here当我通过--split-limit参数时,我正在尝试sqoop形成MySQL。

sqoop import --connect jdbc:mysql://host:port/db_name --username user \
--password pass --query 'select p.* from table1 p join table2 m on \
p.id=m.id WHERE $CONDITIONS' --split-by 'p.id' --target-dir /path \
--direct --driver com.mysql.jdbc.Driver --boundary-query 'select min(id), \
max(id) from tbl_kmart_sales_predicted_weekly_class where (1 = 0)' \
--delete-target-dir --split-limit 10

错误是:

16/12/03 05:57:48 ERROR tool.BaseSqoopTool: Error parsing arguments for import:
16/12/03 05:57:48 ERROR tool.BaseSqoopTool: Unrecognized argument: --split-limit
16/12/03 05:57:48 ERROR tool.BaseSqoopTool: Unrecognized argument: 10

但是当我删除split-limit

时,同样的查询工作正常
sqoop import --connect jdbc:mysql://host:port/db_name --username user \
--password pass --query 'select p.* from table1 p join table2 m on \
p.id=m.id WHERE $CONDITIONS' --split-by 'p.id' --target-dir /path \
--direct --driver com.mysql.jdbc.Driver --boundary-query 'select min(id), \
max(id) from tbl_kmart_sales_predicted_weekly_class where (1 = 0)' \
--delete-target-dir

2 个答案:

答案 0 :(得分:0)

sqoop中没有--split-limit

我猜你试图给参数在 parallel 中运行sqoop作业。

使用-m 10--num-mappers 10代替--split-limit 10

查看Controlling Parallelism了解详情。

答案 1 :(得分:0)

我认为split-limit是在1.4.7版本中引入的

在此版本之前的文档中,我看不到任何提及

https://sqoop.apache.org/docs/1.4.7/SqoopUserGuide.html