7

我安装了HadoopHiveHBaseSqoop并将它们添加到 PATH 中。

当我尝试执行sqoop命令时,出现此错误:

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

开发环境:

操作系统:Ubuntu 12.04 64 位

Hadoop版本:1.0.4

蜂巢版本:0.9.0

Hbase 版本:0.94.5

Sqoop 版本:1.4.3

4

5 回答 5

16

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

注意:可能是因为你在Sqoop Distribution下下载了错误的发行版

于 2013-03-20T23:18:52.730 回答
7

我已经在 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

为了解决这个问题,我复制了 jar 文件:sqoop-1.4.3.jarfrom$SQOOP_HOME/$HADOOP_HOME/lib/.

希望这能帮助那些在 sqoop 上苦苦挣扎的人使用 hadoop。

于 2013-04-05T17:17:37.533 回答
3

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

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

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

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

export PATH=$PATH:$SQOOP_HOME/bin

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

./sqoop help

它应该可以正常工作。

于 2016-04-03T17:39:52.683 回答
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"
于 2016-08-05T03:26:18.667 回答
0

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

sqoop ”脚本实质上是从目录执行“ hadoop ”脚本。$HADOOP_COMMON_HOME/bin/在配置 sqoop 时,在“ sqoop-env.sh”中我们设置了$HADOOP_COMMON_HOMEhadoop 安装目录。如果您的 sqoop 和 hadoop 安装不在常规位置/usr/local,我相信sqoop-x.x.x.jar不在 hadoop 脚本的类路径中。

于 2015-05-07T03:03:35.103 回答