一、环境描述
1.1、项目环境
使用 SpringBoot2.2.1 + MySQL5.7.6 + Shiro + MyBatis + Hive + Hadoop,多模块化,多连接池多数据源管理。
1.2、部署环境
Linux环境下,Hive和Hadoop主机采用的是CDH版本,采用容器化部署方式。
- Hadoop 2.6.0-cdh5.14.0
- Apache Hive (version 1.1.0-cdh5.14.0)
二、遇到的问题及解决办法
就是连这么个服务器的Hive库,花费了很多时间,也踩了非常多的坑,为了避免更多人踩坑,特此记录一下,希望对各位有帮助。
1、启动报错-Finished invalidation session. No sessions were stopped.
2、启动报错-java.lang.NoSuchMethodError: com.google.common.collect.Multimaps.asMap
3、启动报错-NoClassDefFoundError: jetty存在session不一致问题
4、启动异常-java.net.UnknownHostException
5、hive连接报错-java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
7、hive连接报错-java.lang.NoClassDefFoundError: org/apache/thrift/TException
8、hive连接报错-java.lang.NoClassDefFoundError: org/apache/hadoop/hive/thrift/TFilterTransport
9、hive连接报错-java.lang.NoClassDefFoundError: org/apache/log4j/Level
三、项目依赖
本地项目采用与服务器同样版本的Hive和Hadoop,减少报错数量。
由于使用的CDH版maven,需要在本地或者项目中配置CDH独有的仓库。
如何配置?
在项目对应模块的pom文件中配置仓库:
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
<repository>
<id>repo2</id>
<url>https://repo.spring.io/plugins-release/</url>
</repository>
<repository>
<id>mvnrepository</id>
<url>http://mvnrepository.com/</url>
</repository>
</repositories>
主要是cloudera仓库,可以到远程仓库:https://repository.cloudera.com/artifactory/cloudera-repos/ 中去早找到对应版本的hive和Hadoop组件,将依赖加到pom文件中,可能下载有点慢,可以配置阿里云镜像。
最终的POM文件的依赖:
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
<repository>
<id>repo2</id>
<url>https://repo.spring.io/plugins-release/</url>
</repository>
<repository>
<id>mvnrepository</id>
<url>http://mvnrepository.com/</url>
</repository>
</repositories>
<properties>
<hadoop.version>2.6.0-cdh5.14.0</hadoop.version>
<hive.version>1.1.0-cdh5.14.0</hive.version>
</properties>
<dependencies>
<!--连接hive认证要用到的工具包-start-->
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>${hive.version}</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>org.slf4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<artifactId>jersey-server</artifactId>
<groupId>com.sun.jersey</groupId>
</exclusion>
<exclusion>
<artifactId>zookeeper</

本文详细记录了在SpringBoot项目中集成Hive(CDH版本)时遇到的启动问题,包括NoSession错误、依赖冲突等,并提供了仓库配置和依赖管理的解决方法,旨在避免他人踩坑。
3万+

被折叠的 条评论
为什么被折叠?



