Sqoop mysql导入HDFS失败

时间:2016-01-10 09:18:40

标签: sqoop

这就是我的所作所为:

  • 已安装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例外:       找不到类别:找不到类城市

最后

  

导入作业失败

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

1 个答案:

答案 0 :(得分:0)

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

另一种解决问题的方法是,你缺少bindir,你说你的选项参数是我的编译对象所在的位置,所以它会被Sqoop选中。所以你的命令应该是:

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

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