天天看點

Tez-0.10 NoClassDefFoundError: org/eclipse/jetty/servlet/ServletContextHandler 的解決方法

按官網編譯 tez, 配置 hive 的執行引擎為 tez之後,啟動 hive,在 YARN 上運作一個 application,application master 抛出以下異常。

rg.apache.hadoop.service.ServiceStateException: java.lang.NoClassDefFoundError: org/eclipse/jetty/servlet/ServletContextHandler
	at org.apache.hadoop.service.ServiceStateException.convert(ServiceStateException.java:105)
	at org.apache.tez.dag.app.DAGAppMaster.startServices(DAGAppMaster.java:1879)
	at org.apache.tez.dag.app.DAGAppMaster.serviceStart(DAGAppMaster.java:1943)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
	at org.apache.tez.dag.app.DAGAppMaster$9.run(DAGAppMaster.java:2626)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:422)
	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1729)
	at org.apache.tez.dag.app.DAGAppMaster.initAndStartAppMaster(DAGAppMaster.java:2622)
	at org.apache.tez.dag.app.DAGAppMaster.main(DAGAppMaster.java:2409)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/jetty/servlet/ServletContextHandler
	at org.apache.hadoop.yarn.webapp.WebApps.$for(WebApps.java:505)
	at org.apache.hadoop.yarn.webapp.WebApps.$for(WebApps.java:511)
	at org.apache.hadoop.yarn.webapp.WebApps.$for(WebApps.java:516)
	at org.apache.tez.dag.app.web.WebUIService.serviceStart(WebUIService.java:92)
	at org.apache.hadoop.service.AbstractService.start(AbstractService.java:194)
	at org.apache.tez.dag.app.DAGAppMaster$ServiceWithDependency.start(DAGAppMaster.java:1800)
	at org.apache.tez.dag.app.DAGAppMaster$ServiceThread.run(DAGAppMaster.java:1821)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.servlet.ServletContextHandler
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
           

把 hadoop 上的 tez-0.10.1.tar.gz 下載下傳下來,解壓後,把以下 jar 包拷貝到 lib 目錄下。重新打成 tar.gz,并上傳到 hadoop。

-rw-rw-r--. 1 houzhizhen houzhizhen 539912 Aug 17 11:51 lib/jetty-6.1.26.jar
-rw-r--r--. 1 houzhizhen houzhizhen 322802 Jan 22  2020 lib/jetty-client-9.4.40.v20210413.jar
-rw-r--r--. 1 houzhizhen houzhizhen 221940 Jan 22  2020 lib/jetty-http-9.4.40.v20210413.jar
-rw-r--r--. 1 houzhizhen houzhizhen 170341 Jan 22  2020 lib/jetty-io-9.4.40.v20210413.jar
-rw-rw-r--. 1 houzhizhen houzhizhen 118492 Aug 17 11:56 lib/jetty-security-9.4.40.v20210413.jar
-rw-rw-r--. 1 houzhizhen houzhizhen 710973 Aug 13 15:38 lib/jetty-server-9.4.40.v20210413.jar
-rw-rw-r--. 1 houzhizhen houzhizhen 145830 Aug 17 11:47 lib/jetty-servlet-9.4.40.v20210413.jar
-rw-r--r--. 1 houzhizhen houzhizhen 572061 Jan 22  2020 lib/jetty-util-9.4.40.v20210413.jar
-rw-rw-r--. 1 houzhizhen houzhizhen  65239 Aug 17 11:52 lib/jetty-util-ajax-9.4.40.v20210413.jar
-rw-rw-r--. 1 houzhizhen houzhizhen 140273 Aug 17 11:54 lib/jetty-webapp-9.4.40.v20210413.jar
-rw-rw-r--. 1 houzhizhen houzhizhen  68299 Aug 17 11:55 lib/jetty-xml-9.4.40.v20210413.jar

           

繼續閱讀