hive-jdbc-standalone.jar未由Tomcat7加载

o7jaxewo  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(593)

我正在尝试从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?

ve7v8dk2

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

pgccezyw

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

相关问题