我试着在ubuntu上设置sqoop(sqoop-1.4.3.bin\uhadoop-1.0.0)。我可以运行基本的sqoop帮助等没有问题。当我运行以下命令时,我得到一个错误:
sqoop import --connect jdbc:mysql://localhost/test --table sales -m 1
13/04/19 10:35:24 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/hadoop/hadoop-1.0.4
13/04/19 10:35:24 ERROR orm.CompilationManager: It seems as though you are running sqoop with a JRE.
13/04/19 10:35:24 ERROR orm.CompilationManager: Sqoop requires a JDK that can compile Java code.
13/04/19 10:35:24 ERROR orm.CompilationManager: Please install a JDK and set $JAVA_HOME to use it.
13/04/19 10:35:24 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Could not start Java compiler.
at org.apache.sqoop.orm.CompilationManager.compile(CompilationManager.java:176)
我在google上找到了这个错误的答案,大多数答案都指向将javau home设置到jdk,我已经在~/.bashrc[在ubuntu上])中找到了。
$ echo $JAVA_HOME
/usr/lib/jvm/jdk1.7.0_15
以下是我设置的其他变量:
export HADOOP_COMMON_HOME=/opt/hadoop/hadoop-1.0.4
export HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-1.0.4
export SQOOP_HOME=/opt/hadoop/sqoop-1.4.3.bin__hadoop-1.0.0
export PATH=$PATH:$SQOOP_HOME/bin
我还将mysql jdbc驱动程序添加到lib文件夹中。
你知道我为什么会犯这个错误吗?谢谢你,迪迪
3条答案
按热度按时间0md85ypi1#
sqoop最终将执行hadoopshell脚本,因此我将确保hadoop被正确配置为使用jdk而不是jre。
azpvetkf2#
scoop创建表示要导入的表的模式的java类。因此,要创建类,您需要jdk而不是jre。
将java\u设置为
./bashrc
以及$HADOOP_HOME/conf/hadoop-env.sh
也。这应该管用。
nzkunb0c3#
我在ubuntu上也有同样的问题。
我的$javau home被正确地设置为/usr/lib/jvm/java-7-openjdk-amd64,但是查看/usr/lib/jvm/java-7-openjdk-amd64/bin时,我注意到“javac”不在那里。这正是sqoop需要的,但却找不到。
所以问题很简单,我的java安装没有java编译器。当时的解决方案非常简单: