我安装了hadoop、hive、hbase、sqoop并将它们添加到路径中。当我试图执行 sqoop 命令,我得到一个错误:
sqoop
Error: Could not find or load main class org.apache.sqoop.Sqoop
开发环境:操作系统:ubuntu 12.04 64位hadoop版本:1.0.4配置单元版本:0.9.0hbase版本:0.94.5sqoop版本:1.4.3
bq9c1y661#
我的问题是 hadoop-env.sh 文件中有以下行:
hadoop-env.sh
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar
好像你打电话的时候 sqoop 它内部调用 configure-sqoop 这就决定了 HADOOP_CLASSPATH 但是当它(sqoop)调用 hadoop , hadoop 忽略该变量并将其重置回 hadooop-env.sh 解决办法是改变 hadoop-env.sh 换成这句话:
configure-sqoop
HADOOP_CLASSPATH
hadoop
hadooop-env.sh
export HADOOP_CLASSPATH="${JAVA_HOME}/lib/tools.jar:$HADOOP_CLASSPATH"
kqlmhetl2#
@user225003解决方案神奇地工作了,我查看了一些文件,下面是当您执行“sqoop”脚本时在后台发生的事情。“sqoop”脚本实际上是从 $HADOOP_COMMON_HOME/bin/ 目录。配置sqoop时,在“ sqoop-env.sh “我们设定了 $HADOOP_COMMON_HOME 到hadoop安装目录。如果您的sqoop和hadoop安装不在常规位置 /usr/local ,我相信 sqoop-x.x.x.jar 不在hadoop脚本的类路径中。
$HADOOP_COMMON_HOME/bin/
sqoop-env.sh
$HADOOP_COMMON_HOME
/usr/local
sqoop-x.x.x.jar
c90pui9n3#
我已经在centos 6.3上解决了这个问题。我已经安装了hadoop-1.0.4、hbase-0.94.6、hive-0.10.0、pig-0.11.1、sqoop-1.4.3、bin\u 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.jar 从 $SQOOP_HOME/ 进入 $HADOOP_HOME/lib/ .希望这能帮助那些在sqoop中挣扎的人使用hadoop。
Error - Could not find the main class: org.apache.sqoop.Sqoop
sqoop-1.4.3.jar
$SQOOP_HOME/
$HADOOP_HOME/lib/
gcxthw6b4#
确保在sqoop主目录下有sqoop-1.4.3.jar。注意:可能是因为您在sqoop发行版下下载了错误的发行版
brtdzjyr5#
不幸的是,我没有找到解决我问题的完整答案。我目前使用的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 从ApacheSqoop下载并安装在 /home/ubuntu/SQOOP/ 已重命名 sqoop-1.4.6.bin__hadoop-2.0.4-alpha 至 sqoop . 我想和Yarn一起用。然后导出并设置$sqoop\u home我用这个export SQOOP_HOME=/home/ubuntu/SQOOP/sqoop/ export PATH=$PATH:$SQOOP_HOME/bin 现在如果有人去$sqoop\u home/bin试试
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
export PATH=$PATH:$SQOOP_HOME/bin
./sqoop help
它应该毫无问题地工作。
5条答案
按热度按时间bq9c1y661#
我的问题是
hadoop-env.sh
文件中有以下行:好像你打电话的时候
sqoop
它内部调用configure-sqoop
这就决定了HADOOP_CLASSPATH
但是当它(sqoop)调用hadoop
,hadoop
忽略该变量并将其重置回hadooop-env.sh
解决办法是改变hadoop-env.sh
换成这句话:kqlmhetl2#
@user225003解决方案神奇地工作了,我查看了一些文件,下面是当您执行“sqoop”脚本时在后台发生的事情。
“sqoop”脚本实际上是从
$HADOOP_COMMON_HOME/bin/
目录。配置sqoop时,在“sqoop-env.sh
“我们设定了$HADOOP_COMMON_HOME
到hadoop安装目录。如果您的sqoop和hadoop安装不在常规位置/usr/local
,我相信sqoop-x.x.x.jar
不在hadoop脚本的类路径中。c90pui9n3#
我已经在centos 6.3上解决了这个问题。
我已经安装了hadoop-1.0.4、hbase-0.94.6、hive-0.10.0、pig-0.11.1、sqoop-1.4.3、bin\u 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.jar
从$SQOOP_HOME/
进入$HADOOP_HOME/lib/
.希望这能帮助那些在sqoop中挣扎的人使用hadoop。
gcxthw6b4#
确保在sqoop主目录下有sqoop-1.4.3.jar。
注意:可能是因为您在sqoop发行版下下载了错误的发行版
brtdzjyr5#
不幸的是,我没有找到解决我问题的完整答案。我目前使用的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
从ApacheSqoop下载并安装在/home/ubuntu/SQOOP/
已重命名sqoop-1.4.6.bin__hadoop-2.0.4-alpha
至sqoop
. 我想和Yarn一起用。然后导出并设置$sqoop\u home我用这个
export SQOOP_HOME=/home/ubuntu/SQOOP/sqoop/
export PATH=$PATH:$SQOOP_HOME/bin
现在如果有人去$sqoop\u home/bin试试它应该毫无问题地工作。