3 Star 10 Fork 7

leo_jie / spark-spring-boot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

在Java的世界里,最不缺乏的就是想象力!当Spark遇上Spring Boot,又会发生怎样的故事呢!😋

基于 Java8 + Scala + Spark+Spring Boot 充分利用起SpringBoot注解开发的便利,IOC等等Bean对象管理的优势,构建定制化Spark任务管理服务。😋

起一个常驻集群的Spark+SpringBoot 服务,以API的方式,手动或定时触发我们的Spark任务,避免繁琐冗长的Submit命令,避免一次又一次的资源申请,实时监控任务运行,及时得到运行反馈。使非开发人员,点点拽拽,也可以运行我们的日常业务,操作我们的大数据平台。😋

github https://github.com/CCweixiao/spark-spring

技术栈 介龙平博客 | 一个程序员的个人博客


功能特性

  • Spark与SpringBoot集成,解决了冲突依赖
  • Spring Bean对象池集中管理SparkSession对象
  • 依赖注入Scala类
  • java与Scala代码互相调用
  • maven混合java Scala编译打包
  • spark-submit提交,常驻集群,API方式,运行spark任务

我的环境

开发环境

  • MacOs 10.14.5
  • jdk 1.8
  • scala 2.11.8
  • spark 2.4.3
  • idea 2019.1.2

测试集群环境

  • centos7
  • jdk1.8
  • scala 2.11.8
  • hadoop 2.7.4
  • spark 2.4.3
  • hive 3.1.1

测试集群配置

项目结构

技术栈

  • jdk 1.8
  • maven 3.6.1
  • SpringBoot 1.5.6
  • spark 2.4.3
  • hive 3.4.1
  • ...

开始使用

  1. 使用IDE导入本项目,更新pom,导入依赖
  2. 替换集群配置文件为自己的
  3. mvn clean package 打包

//集群运行时注意修改
@Bean
    @ConditionalOnMissingBean(SparkSession.class)
    public SparkSession sparkSession() throws Exception {
        return SparkSession.builder()
                .appName("FastKettle")
                //.master("local[4]")
                .enableHiveSupport()
                .getOrCreate();
    }
  1. 提交集群运行

spark-submit --class com.dr.leo.demo.SparkSpringApplication --executor-memory 4G --num-executors 4 --master yarn --deploy-mode client spark-spring-0.0.1-SNAPSHOT.jar

运行测试

服务启动后如图

postman 测试

WordCount

操作hive中的表

java scala互相调用

依赖注入

总结

以上操作便完成了SpringBoot与Spark的整合,如有不妥之处,还望指正。

Spark与Spring Boot的整合,结合两者的优点,具体可以发挥怎样的效果,还需要结合公司业务或自己的需求,自由想象。

整合过程中遇到的最大问题,其实是SpringBoot与集群之间的包冲突。经过反复测试,比较兼容的一个SpringBoot版本是1.5.6。2.0以上版本的未经严格测试,依赖包冲突的貌似比较多,或需要排更多的依赖包。

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/leojie/spark-spring-boot.git
git@gitee.com:leojie/spark-spring-boot.git
leojie
spark-spring-boot
spark-spring-boot
master

搜索帮助

14c37bed 8189591 565d56ea 8189591