Hive连接+Kerberos认证各种报错及解决办法汇总

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

一、环境描述

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

6、hive连接报错-java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.security.UserGroupInformation

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

10、日志依赖冲突警告

11、项目打war包没排除内置Tomcat警告

三、项目依赖

本地项目采用与服务器同样版本的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</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值