Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqoop merge命令中的--jar文件和--class name选项是什么_Merge_Sqoop_Cloudera Cdh - Fatal编程技术网

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

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_

我尝试在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_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,则类应该在该位置)。“是的,但是如何从命令行界面找到实际路径?