Sqoop - 无法找到或加载主类org.apache.sqoop.Sqoop

时间:2013-03-20 20:49:10

标签: apache hadoop hbase hive sqoop

我安装了 Hadoop Hive HBase Sqoop 并将其添加到路径中。

当我尝试执行sqoop命令时,我收到此错误:

Error: Could not find or load main class org.apache.sqoop.Sqoop

开发环境:

操作系统:Ubuntu 12.04 64位

Hadoop版本:1.0.4

Hive版本:0.9.0

Hbase版本:0.94.5

Sqoop版本:1.4.3

5 个答案:

答案 0 :(得分:12)

确保您的SQOOP HOME目录下有sqoop-1.4.3.jar。

注意:可能是因为您在Sqoop Distribution

下下载了错误的分发版

答案 1 :(得分:4)

我已在CentOS 6.3上解决了这个问题 我安装了Hadoop-1.0.4,hbase-0.94.6,hive-0.10.0,pig-0.11.1,sqoop-1.4.3.bin__hadoop-1.0.0,zookeeper-3.4.5。

我也在sqoop运行同样的问题:Error - Could not find the main class: org.apache.sqoop.Sqoop

要解决此问题,我已将sqoop-1.4.3.jar中的jar文件$SQOOP_HOME/复制到$HADOOP_HOME/lib/

希望这可以帮助那些努力使用sqoop的人与hadoop合作。

答案 2 :(得分:2)

不幸的是,我没有找到问题的完整答案。我使用的当前sqoop安装版本是1.4.6。我不确定sqoop-1.4.6.tar.gz如果必须编译源代码,我能够使用以下指令击败相同的错误Error - Could not find the main class: org.apache.sqoop.Sqoop

相反,我从apache sqoop下载了sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz,并将其安装在/home/ubuntu/SQOOP/重命名为sqoop-1.4.6.bin__hadoop-2.0.4-alpha的{​​{1}}。我想和Yarn一起使用。

然后导出并设置$ SQOOP_HOME 我用过这个

sqoop

export SQOOP_HOME=/home/ubuntu/SQOOP/sqoop/

现在,如果有人去$ SQOOP_HOME / bin并尝试

export PATH=$PATH:$SQOOP_HOME/bin

它应该没有任何问题。

答案 3 :(得分:2)

我的问题是hadoop-env.sh文件中有这一行:

export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

当您致电sqoop时,它似乎在内部调用configure-sqoop,正确设置HADOOP_CLASSPATH,然后当它(sqoop)调用hadoophadoop时忽略该变量并将其重置回hadooop-env.sh

中的变量

修复方法是更改​​hadoop-env.sh以改为使用此行:

export HADOOP_CLASSPATH="${JAVA_HOME}/lib/tools.jar:$HADOOP_CLASSPATH"

答案 4 :(得分:0)

@ user225003解决方案神奇地工作,我查看了一些文件,这是在执行" sqoop"时发生的事情。脚本。

" sqoop "脚本基本上执行" hadoop "来自$HADOOP_COMMON_HOME/bin/目录的脚本。在配置sqoop时,在" sqoop-env.sh"我们将$HADOOP_COMMON_HOME设置为hadoop安装目录。如果您的sqoop和hadoop安装不在常规位置/usr/local,我相信sqoop-x.x.x.jar不在hadoop脚本的类路径中。