Sqoop merge命令中的--jar文件和--类名选项是什么



我尝试在cloudera quickstart VM:中运行以下sqoop合并命令

sqoop merge --merge-key department_id 
  --new-data /user/cloudera/sqoop_merge/departments_delta 
  --onto /user/cloudera/sqoop_merge/departments 
  --target-dir /user/cloudera/sqoop_merge/departments_stage 
  --class-name departments 
  --jar-file 

我得到以下错误:

选项缺少参数:jar文件

在sqoop文档中,我发现了这一点。

--jar文件指定要从中加载记录类的jar的名称。

我收到的错误

--类名命令。

这两个命令是什么?传递给这些命令的预期参数是什么?

当您最初使用sqoop将数据导入hdfs时,sqoop必须为每个导入的表创建java文件(通常在为departments表运行sqoop import命令的同一目录中,或者如果使用了--outdir,则类应该在该位置(。您需要将这些类打包到jar文件中,并在merge:中使用

因此,如果将department.java类打包到mydataTypes.jar文件中,则sqoop merge命令应该是:

sqoop merge --merge-key department_id 
  --new-data /user/cloudera/sqoop_merge/departments_delta 
  --onto /user/cloudera/sqoop_merge/departments 
  --target-dir /user/cloudera/sqoop_merge/departments_stage 
  --class-name departments 
  --jar-file /path/to/mydataTypes.jar

sqoop_guide

为了解析数据集并提取键列,自动生成必须使用以前导入的类。您应该指定类名和带有CCD_ 10和CCD_ 11的jar文件。如果不可用,您可以使用codegen工具重新创建该类。

最新更新