我安装了 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
答案 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)调用hadoop
,hadoop
时忽略该变量并将其重置回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脚本的类路径中。