【问题标题】:SPRING XD -SQOOP JOB FAILED due to invalid arguments由于参数无效,SPRING XD -SQOOP 作业失败
【发布时间】:2015-04-13 21:35:02
【问题描述】:

我们正在尝试使用 sqoop 作业作为 spring xd 的模块将数据从 sql server 摄取到 hdfs。

当我尝试使用 xd - shell of spring xd 工具运行以下命令时:

sqoop --command=import --args='--connect 'jdbc:sqlserver://localhost/mydb'  
--username root --password p@ss --query select * from tablename  
--target-dir /path/to/hdfs/file'

从 spring xd shell 作为 sqoop 作业启动作业时出现以下错误:

sqoop.errors

Try --help for usage instructions.
Exception in thread "main" java.lang.RuntimeException: Sqoop failed - return code 1
at org.springframework.xd.sqoop.SqoopRunner.main(SqoopRunner.java:81)

更多错误

19:38:40,556 ERROR main tool.BaseSqoopTool - Error parsing arguments for import:
19:38:40,556 ERROR main tool.BaseSqoopTool - Unrecognized argument: '--connect
19:38:40,556 ERROR main tool.BaseSqoopTool - Unrecognized argument: 'jdbc:sqlserver://localhost/mydb'
19:38:40,556 ERROR main tool.BaseSqoopTool - Unrecognized argument: --username
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: root
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: --password
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: p@ss
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: --query
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: select
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: *
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: from
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: tablename
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: --target-dir
19:38:40,557 ERROR main tool.BaseSqoopTool - Unrecognized argument: /path/to/hdfs/file'  

退出说明:

java.lang.IllegalStateException: Step execution failed - Exception in thread "main" java.lang.RuntimeException: Sqoop failed - return code 1
at org.springframework.batch.step.tasklet.x.AbstractProcessBuilderTasklet.execute(AbstractProcessBuilderTasklet.java:209)

我也尝试将= 放在参数之后,但得到了相同的结果。

为什么?

【问题讨论】:

  • 您好,欢迎来到 Stack Overflow!在当前状态下,您的问题无法回答;请尝试对其进行编辑以提高可读性,并添加有关您尝试过的内容的更多详细信息。
  • 我添加了大部分信息。可读吗?

标签: java hdfs sqoop spring-xd


【解决方案1】:

您在单引号内有单引号,这会将您的命令拆分为

sqoop --command=import --args='--connect '
jdbc:sqlserver://localhost/mydb
'--username root --password p@ss --query select * from tablename --target-dir /path/to/hdfs/file'

由于 --connect 本身不是一个有效的参数,因此您会遇到错误。

您可以转义单引号,如下所示:sqoop --command=import --args='--connect \'jdbc:sqlserver://localhost/mydb\' --username root --password p@ss --query select * from tablename --target-dir /path/to/hdfs/file'

或者您也应该能够在 args 部分周围使用双引号而不是单引号,例如:sqoop --command=import --args="--connect 'jdbc:sqlserver://localhost/mydb' --username root --password p@ss --query select * from tablename --target-dir /path/to/hdfs/file"

【讨论】:

  • 您好,感谢您回复我的流现在正在接受参数,但现在它显示无效对象的其他错误。这是一个常见错误,可能是 sqoop 中的一个错误。 0:59:07,087 INFO main manager.SqlManager - 执行 SQL 语句:SELECT t.* FROM [dbo.table_name] AS t WHERE 1=0 10:59:07,128 ERROR main manager.SqlManager - 错误执行语句:com.microsoft。 sqlserver.jdbc.SQLServerException:对象名称“dbo.table_name”无效。 mail-archives.apache.org/mod_mbox/sqoop-user/201310.mbox/…
  • 2015-04-18 06:18:17,604 1.1.0.RELEASE ERROR task-scheduler-3 sqoop.SqoopTasklet - Sqoop 错误:线程“main”中的异常 java.lang.RuntimeException:Sqoop 失败- 返回码 1 2015-04-18 06:18:17,604 1.1.0.RELEASE ERROR task-scheduler-3 sqoop.SqoopTasklet - Sqoop 错误:在 org.springframework.xd.sqoop.SqoopRunner.main(SqoopRunner.java:81 )
  • 继续出现更多错误 -- 2015-04-18 06:18:17,608 1.1.0.RELEASE ERROR task-scheduler-3 step.AbstractStep - 在作业 sqooptest5 java 中执行 step tasklet 时遇到错误。 lang.IllegalStateException: Step execution failed - 06:18:16,959 INFO main mapreduce.Job - Job job_1425378609799_0001 failed with state FAILED due to: Application application_1425378609799_0001 failed 2 times due to AM Container for appattempt_1425378609799_0001_000002 exit -启动:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-26
  • 2014-10-21
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多