我正在尝试从web应用程序连接到hive thrift服务器(hiveserver2)。我在eclipse中创建了动态web项目,并在webinf/lib下添加了以下jar-
hive-jdbc-0.14.0-standalone.jar
hive-jdbc-0.14.0.jar
hadoop-common-2.6.0.jar
mongo-hadoop-core.jar
mongo-hadoop-hive.jar
mongo-java-driver.jar
我正在使用tomcat 7.0.61。当我将应用程序部署到tomcat服务器时,它会给出以下消息,并且不会加载hive-jdbc-0.14.0-standalone.jar
INFO: validateJarFile(C:\EclipseWorkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\HiveWeb\WEB-INF\lib\hive-jdbc-0.14.0-standalone.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
hive-jdbc-0.14.0-standalone.jar中的javax.servlet.servlet.class和tomcat/lib似乎有冲突。我需要hive-jdbc-0.14.0-standalone.jar来连接到hiveserver。
我尝试在tomcat/lib目录中添加hive-jdbc-0.14.0-standalone.jar。但tomcat因此未能启动。
有没有办法从hive-jdbc-0.14.0-standalone.jar或tomcat中排除javax.servlet.servlet?
2条答案
按热度按时间ve7v8dk21#
你猜对了。
tomecat/lib/servlet-api.jar包括
javax.servlet
与…冲突javax.servlet
在hive-jdbc-x.x.x-standlone.jar中。我认为在将应用程序部署到生产环境时不建议使用hive-jdbc-x.x.x-standlone.jar,因为hive-jdbc-x.x.x-standlone.jar包含许多其他资源,很容易与其他*.jar冲突。
所以只需删除hive-jdbc-x.x.x-standlone.jar,并将以下jar添加到类路径(已经过测试)。
hadoop-auth-x.x.x.jar
hadoop-common-x.x.x.jar
hadoop-mapreduce-client-core-x.x.x.jar
hive-exec-x.x.x.jar
hive-jdbc-x.x.x.jar
hive-metastore-x.x.x.jar
配置单元服务-x.x.x.jar
pgccezyw2#
您应该尝试删除hive-jdbc-0.14.0-standalone.jar并使用以下jar:
hive-common--0.14.0.jar hive-exec-0.14.0.jar hive-metastore-0.14.0.jar hive-serde-0.14.0.jar hive-service-0.14.0.jar