2016-11-23 58 views
0

我正在使用最新版本的Sqoop2(1.99.7)使用Hadoop进行测试,并且在运行sqoop2-server时,以下错误:无法找到启动Sqoop2服务器时的hadoop配置类(1.99.7)

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration 
at org.apache.sqoop.security.authentication.SimpleAuthenticationHandler.secureLogin(SimpleAuthenticationHandler.java:36) 
at org.apache.sqoop.security.AuthenticationManager.initialize(AuthenticationManager.java:98) 
at org.apache.sqoop.core.SqoopServer.initialize(SqoopServer.java:57) 
at org.apache.sqoop.server.SqoopJettyServer.<init>(SqoopJettyServer.java:67) 
at org.apache.sqoop.server.SqoopJettyServer.main(SqoopJettyServer.java:177) 

Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
     ... 5 more 

我的当前设置:

尽我所能图是Hadoop的路径并不被Sqoop加载,如所需的JAR似乎位于/ usr/local/hadoop/shared/*。

我能在网上找到的大多数文档都是在1.99.7之前的版本,但是这个版本的一个主要变化是Sqoop服务器从Tomcat移动到Jetty,所以所有的catalina配置选项都是没有实际意义。

有人可以帮我弄清楚如何让Sqoop服务器运行?

+0

[链接](https://stackoverflow.com/a/24812761/1931239)解决我的问题。 –

回答

0

啊,大部分已经算出来了。

看起来像sqoop.sh脚本基于环境变量集来加载类路径中的所有jar。 Docker容器将所有正在查找的环境变量设置为Hadoop安装的根路径,而脚本期望它们指向包含JAR文件的目录。

HADOOP_PREFIX=/usr/local/hadoop 
HADOOP_HDFS_HOME=/usr/local/hadoop 
HADOOP_COMMON_HOME=/usr/local/hadoop 
HADOOP_YARN_HOME=/usr/local/hadoop 
HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop 
HADOOP_MAPRED_HOME=/usr/local/hadoop 

所以脚本选择该目录在$ HADOOP_HOME目录和随后的子目录也都在脚本调用出来。然后

的最后一步是编辑sqoop.properties文件,并确保映射精简配置设置正确的目录:

org.apache.sqoop.submission.engine.mapreduce.configuration.directory=/usr/local/hadoop/etc/hadoop 

然后服务器开始!

我会在这里的情况下离开这个任何人碰到这个运行...