2016-11-23 59 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 

然後服務器開始!

我會在這裏的情況下離開這個任何人碰到這個運行...