Spark Submit 提交任务抛出 IllegalAccessError


1. 运行环境

组件 版本
Ambari 2.7.6
Spark 2.3.2
HDFS 3.1.1

2. 提交任务报错信息如下:

  • 使用 spark-submit 提交任务时报错信息
java.lang.IllegalAccessError: class org.apache.hadoop.hdfs.web.HftpFileSystem cannot access its superinterface org.apache.hadoop.hdfs.web.TokenAspect$TokenManagementDelegator

3. 解决办法

在IDEA中导出jar包之前,

File->Project Structure->Artifacts->xxx.jar->Output Layout

将hadoop-hdfs-x.x.x.jar这个文件去除即可

或在pom.xml 中配置,打包时去除相应的依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>myTest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <hadoop.version>3.2.1</hadoop.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>3.0.0-preview2</version>
            <!-- 要排除的依赖 -->
            <exclusions>
                <exclusion>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-client</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-hdfs</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop.version}</version>
        </dependency>

    </dependencies>

</project>

文章作者: hnbian
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 hnbian !
评论
 上一篇
Ambari2.7.3 集成 Flume Service Ambari2.7.3 集成 Flume Service
1. 介绍Ambari 是一个开源的 Apache 项目,用于部署、监控和管理 Hadoop 集群。Ambari 提供了一个易于使用的 Web UI 和 RESTful API 来简化 Hadoop 集群管理。Ambari 2.7.3 是
2022-06-05
下一篇 
编译GreenPlum源码时遇见的问题及解决方式 编译GreenPlum源码时遇见的问题及解决方式
前段时间编译了 greenplum 源码, 过程中遇到了一些问题, 在这里进行一下记录, 希望能够帮助遇见相同问题的小伙伴更快的解决问题。 Could not fetch URL https://pypi.python.org/simple
2022-03-08
  目录