我尝试在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
工具重新创建该类。