-jar文件和--class名称选项是什么

vecaoik1  于 2021-06-03  发布在  Sqoop
关注(0)|答案(1)|浏览(442)

我尝试在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的名称。
我得到的错误为
--类名命令。
这两个命令是什么?传递给这些命令的预期参数是什么?

iszxjhcz

iszxjhcz1#

最初使用将数据导入hdfs时 sqoop , sqoop 必须为每个导入的表创建了java文件(通常在运行的目录中) sqoop import 命令 departments 表或if --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\u指南
要分析数据集并提取键列,必须使用从以前的导入中自动生成的类。您应该指定类名和jar文件 --class-name 以及 --jar-file . 如果不可用,可以使用 codegen 工具。

相关问题