Spark2.3.1与Springboot集成

前几天有项目用到了大数据的计算服务,最后选了spark作大数据计算用版本用2.3.1,之前是大数据小白,没在项目里用过。项目用的是springboot,版本是2.0.3 踩了版本的太多坑了,版本号得写清楚了。

这次集成最重要的一件事是,查了好多帖子也都没有写到这一点的,如果是项目里不使用spark集群的话:

只需要在项目里集成spark的相关包,就可以在本机使用spark计算,不需要在服务器再搭建spark服务

一开始我先在服务器搭建了spark服务,配置好地址后,连接提交任务,任务一直显示执行中,worker也有,就是任务不会执行,日志里也看不到错误。我把spark的版本降到2.0后,本地运行报错,才找到问题。

private SparkSession initSparkSession()
{
    return  SparkSession
            .builder()
            .master("local[*]")
            .config("spark.cores.max","2")
            .config("spark.driver.maxResultSize","2g")
            .appName("JavaWordCount")
            .getOrCreate();
}

master使用local就可以,[]里的是多线程的意思,其他的config可以配置也可以不配置,都有默认配置。配置项最好参考官方文档,写的最清楚。

获取SparkSession后,就可以读取RDD然后计算了。

pom.xml中需要引入的jar包如下:

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.3.1</version>
        <exclusions>
            <exclusion>
                <artifactId>slf4j-log4j12</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>2.3.1</version>
        <scope>compile</scope>
    </dependency>

因为springboot中的日志会和spark包中的slf4j包冲突,所以在引入的时候取消slf4j,如果不是springboot项目,不需要取消。

这样的话springboot和spark的集成就完成了。

转载于:https://my.oschina.net/u/3396724/blog/1841008

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值