Sqoop merge命令中的--jar文件和--class name选项是什么
我尝试在cloudera quickstart VM中运行以下sqoop merge命令:Sqoop merge命令中的--jar文件和--class name选项是什么,merge,sqoop,cloudera-cdh,Merge,Sqoop,Cloudera Cdh,我尝试在cloudera quickstart VM中运行以下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_
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文件(通常在运行部门
表的sqoop import
命令的同一目录中,或者如果使用了--outdir
,则类应位于该位置)。您需要将这些类打包到jar文件中,并在合并
中使用它们:
因此,如果您在mydataTypes.jar
文件中打包department.java
类,那么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
要分析数据集并提取键列,自动生成
必须使用以前导入中的类。您应该指定
带有--类名
和--jar文件
的类名和jar文件。如果
不可用。您可以使用codegen
工具重新创建该类
如何查找或创建
.jar
文件?转到java文件所在的目录并执行此命令:jar cf
-如何查找java文件所在的目录?已回答-(通常在为departments表运行sqoop import命令的同一目录中,或者如果使用--outdir,则类应该在该位置)。“是的,但是如何从命令行界面找到实际路径?