将作业提交到 dataproc sqoop 时出现问题

Posted

技术标签:

【中文标题】将作业提交到 dataproc sqoop 时出现问题【英文标题】:Issues while submitting job to dataproc sqoop 【发布时间】:2020-11-25 16:22:54 【问题描述】:

我对 apache sqoop 很陌生。我在 GCP 中创建了 dataproc 集群并尝试使用以下命令提交 sqoop 作业:

gcloud dataproc jobs submit hadoop --cluster cluster123 --class=org.apache.sqoop.Sqoop --import -Dmapreduce.job.user.classpath.first=true --jars=gs://bucket123/sqoop-1.4.7-hadoop260.jar,gs://bucket123/mssql-jdbc-8.4.1.jre11.jar --connect="jdbc:sqlserver://server_ip:1433/db_name" --username=sql_user --password-file=gs://bucket123/password.txt --target-dir gs://bucket123/mssql-output-folder/ --table=table123

出现以下错误:

    ERROR: (gcloud.dataproc.jobs.submit.hadoop) unrecognized arguments:
  --import (did you mean '--format'?)
  -Dmapreduce.job.user.classpath.first=true
  --connect=jdbc:sqlserver://server_ip:1433/table123 (did you mean '--project'?)
  --username=sqlserver (did you mean '--cluster'?)
  --password-file=gs://bucket123/password.txt (did you mean '--flags-file'?)
  --target-dir
  gs://bucket123/mssql-output-folder/
  --table=test1 (did you mean '--labels'?)
  To search the help text of gcloud commands, run:
  gcloud help -- SEARCH_TERMS

【问题讨论】:

【参考方案1】:

在命令中添加作业参数之前,您需要输入'--'。

试试这个:

gcloud dataproc jobs submit hadoop \
  --cluster cluster123 \
  --class=org.apache.sqoop.Sqoop \
  --jars=gs://bucket123/sqoop-1.4.7-hadoop260.jar,gs://bucket123/mssql-jdbc-8.4.1.jre11.jar \
  -- \
  --import -Dmapreduce.job.user.classpath.first=true --connect="jdbc:sqlserver://server_ip:1433/db_name" --username=sql_user --password-file=gs://bucket123/password.txt --target-dir gs://bucket123/mssql-output-folder/ --table=table123

【讨论】:

在我的命令中也 - 已经为每个参数给出了

以上是关于将作业提交到 dataproc sqoop 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

向 dataproc 集群提交 pyspark 作业时出错(找不到作业)

将数据从 MySQL 加载到 HDFS 时出现 Sqoop 错误

错误 - 使用 Apache Sqoop 和 Dataproc 从 SQL Server 导入 GCS

从 SAP HANA 导入数据时出现 sqoop 问题

sqoop从hive导入数据到mysql时出现主键冲突

使用 google-cloud-python API 访问 Dataproc 时出现无效区域错误