java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.<init>(ZIIIIIIZ)V

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.<init>(ZIIIIIIZ)V,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

java.lang.NoSuchMethodError: io.netty.buffer.PooledByteBufAllocator.(ZIIIIIIZ)V

Java操作spark出现上述错误,如下代码:

import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.ArrayList;
import java.util.List;

class sparkConnect {

    sparkConnect() {

        //解决java.io.FileNotFoundException: HADOOP_HOME and hadoop.home.dir are unset

        System.setProperty("hadoop.home.dir","D:\\SoftWares\\Apache\\spark-3.3.1-bin-hadoop3");


        JavaSparkContext sc = new JavaSparkContext("local", "thisSpark");
        List<Integer> list = new ArrayList<Integer>();
        list.add(1); list.add(2); list.add(3);

        //内存中获取数据常见rdd
        JavaRDD<Integer> rdd = sc.parallelize(list);

        //rdd计算
        JavaRDD<Integer> listPlus = rdd.map(y->y+5);

        System.out.println("list is:" + list);
        System.out.println("listPlus is:"+ listPlus);
        System.out.println("the relation is list plus five = listPlus");


    }

    public static void main(String[] args) {

        sparkConnect sparkConnect = new sparkConnect();
    }

}

这个错误困扰了我一天半,及其头疼,在查看了报错的Netty官方文档https://netty.io/4.1/api/overview-summary.html后也没找到解决方案。

在这里插入图片描述

spark开发文档

在这里插入图片描述

于是寻找度娘,终于看到了该博主的文章解决了我的问题【Spark3.2】io.netty.buffer.PooledByteBufAllocator.<init>(ZIIIIIIZ)V和这位博主遇到的问题是同意类型,但解决方案却不同。

报错如下:

在这里插入图片描述

dependencyManagement

Maven 可以通过 dependencyManagement 元素对依赖进行管理,它具有以下 2 大特性:

  • 在该元素下声明的依赖不会实际引入到模块中,只有在 dependencies 元素下同样声明了该依赖,才会引入到模块中。
  • 该元素能够约束 dependencies 下依赖的使用,即 dependencies 声明的依赖若未指定版本,则使用 dependencyManagement 中指定的版本,否则将覆盖 dependencyManagement 中的版本。

为了避免多次引入造成的冲突问题,将io.netty.buffer交由dependencyManagement管理。pom如下:

在这里插入图片描述

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>4.1.58.Final</version>
            </dependency>
            
        </dependencies>
    </dependencyManagement>

java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.util.LookupCache

spring boot中自带jackson没找到是spring boot版本太低了提高一下spring boot版本即可。

在这里插入图片描述

使用2.1.8报错提高到2.7.6后就可以了。

在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/156198.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!