在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
//集群运行时注意修改
@Bean
@ConditionalOnMissingBean(SparkSession.class)
public SparkSession sparkSession() throws Exception {
return SparkSession.builder()
.appName("FastKettle")
//.master("local[4]")
.enableHiveSupport()
.getOrCreate();
}
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以上版本的未经严格测试,依赖包冲突的貌似比较多,或需要排更多的依赖包。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。