我正在使用带有最新版本的 Sqoop2 (1.99.7) 的 Hadoop 进行测试,并且在运行 sqoop2-server 时,出现以下错误:
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使用最新的https://hub.docker.com/r/sequenceiq/hadoop-docker/映像
- 下载最新的 Sqoop2 二进制文件 ( http://sqoop.apache.org/ ) 并将它们安装到 /usr/lib/sqoop/ 的运行容器中
- 运行 /usr/lib/sqoop/bin/sqoop2-server start
我能想到的最好的结果是 Sqoop 没有加载 Hadoop 类路径,因为所需的 JAR 似乎位于 /usr/local/hadoop/shared/*。
我能在网上找到的大部分文档都是针对 1.99.7 之前的版本,但是这个版本的一个主要变化是 Sqoop 服务器从 Tomcat 迁移到了 Jetty,所以所有的 catalina 配置选项都没有实际意义。
有人可以帮我弄清楚如何让 Sqoop 服务器运行吗?