【问题标题】:FileNotFound error in Sqoop Merge commandSqoop 合并命令中的 FileNotFound 错误
【发布时间】:2017-04-21 03:41:03
【问题描述】:

我正在尝试执行一个 sqoop 合并命令,为此,我执行了一个 Sqoop 代码生成以将表的类和 jar 放入 HDFS

Sqoop CodeGen 命令:

sqoop codegen --connect jdbc:mysql://127.0.0.1/mydb --table mergetab --username root --password cloudera --outdir /user/cloudera/codegenclasses --fields-terminated-by '\t'

我在 outdir 中有以下文件:/user/cloudera/codegenclasses

-rw-r--r--   1 cloudera cloudera       9572 2017-04-20 16:26 codegenclasses/mergetab.class
-rw-r--r--   1 cloudera cloudera       3902 2017-04-20 16:26 codegenclasses/mergetab.jar
-rw-r--r--   1 cloudera cloudera      12330 2017-04-20 16:26 codegenclasses/mergetab.java

我正在运行下面的 sqoop 合并命令来更新我的 hive 表中的行:

sqoop merge --merge-key id --new-data /user/cloudera/incrdata/incrementaldata --onto /user/cloudera/hivetables/fulltabledata --target-dir /user/cloudera/updateddatam --class-name /user/cloudera/codegenclasses/mergetab.class --jar-file /user/cloudera/codegenclasses/mergetab.jar

但我得到了错误:

Encountered IOException running import job: java.io.FileNotFoundException: File /user/cloudera/codegenclasses/44059c9b2bd47b95f03866d8d93eff7f/mergetab.jar does not exist

我拥有文件夹中的所有文件,并提供了正确的目录。但我无法确定我在这里犯的错误。 谁能帮我解决这个问题?

【问题讨论】:

    标签: hadoop sqoop


    【解决方案1】:

    在参数--outdir <dir>中,指定的<dir>路径属于本地文件系统。而使用--outdir 只会存储生成的代码,即tablename.java。请改用--bindir <dir>

    sqoop codegen --connect jdbc:mysql://127.0.0.1/mydb --table mergetab --username root --password cloudera --bindir /path/to/store/jarfile --fields-terminated-by '\t'
    

    然后merge。默认情况下,表名是--class-name

    sqoop merge --merge-key id --new-data /user/cloudera/incrdata/incrementaldata --onto /user/cloudera/hivetables/fulltabledata --target-dir /user/cloudera/updateddatam --class-name mergetab --jar-file /path/to/store/jarfile/mergetab.jar
    

    【讨论】:

      猜你喜欢
      • 2015-01-29
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多