【问题标题】:Sqoop mysql import to HDFS is failedSqoop mysql导入HDFS失败
【发布时间】:2016-01-10 09:18:39
【问题描述】:

这就是我所做的:

  • 已安装 UBUNTU 14.04
  • 已安装 HADOOP 2.7.1 版本
  • 已安装 SQOOP 1.4.6 版本
  • 已安装 XAMPP 7.0.1 版本(用于 mysql)

  • 在 .bashrc 中为 hadoop 和 sqoop 设置路径

  • 更新了 sqoop_env.sh 文件中的路径 HADOOP_COMMON_HOME 和 HADOOP_MAPRED_HOME 为 /usr/local/hadoop
  • 移动了jar文件/usr/lib/sqoop/lib/mysql-connector-java-5.1.30-bin.jar

终于在 sqoop 中运行下面的命令

sqoop import --connect jdbc:mysql://localhost/world --username root --table City --m 1

并在错误消息下方抛出

JAVA 异常: 找不到类例外:找不到类城市

最后

导入作业失败

问题: 有人可以帮我解决这个问题吗? 我错过了这里的任何配置吗?

【问题讨论】:

    标签: sqoop


    【解决方案1】:

    Squoop 会根据您指定的表生成 java 代码并自动为您编译。它实际上是在生成 java 源代码并在 /tmp 中编译,这不会在你的类路径中。如果你已经生成了jar,可以使用--libjars帮助squoop找到City表对应的class文件。

    解决您的情况的另一种方法是,您缺少bindir,您说选项参数是我的编译对象应该位于的位置,因此它会被 Sqoop 拾取。所以你的命令应该是:

    sqoop import --bindir ./ --connect jdbc:mysql://localhost/world --username root --table City --m 1
    

    如果没有 --bindir 参数,Sqoop 会将编译后的 .class 文件和 .jar 文件放在 /tmp 空间中。您可以参考here了解更多详情。

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2014-05-11
      • 2013-05-17
      • 2020-08-10
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 1970-01-01
      • 2017-08-24
      相关资源
      最近更新 更多