论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
大数据
›
数据仓库与分析
›
【spark学习】 spring boot 整合 spark
【spark学习】 spring boot 整合 spark
数据人与超自然意识
金牌会员
|
2025-1-3 11:26:14
|
显示全部楼层
|
阅读模式
楼主
主题
907
|
帖子
907
|
积分
2721
阐明
本例子是使用java语言实现的spark学习的案例笔记,整合springboot等干系框架。
使用当地算力进行计算。不需要安装hadoop。
主要用于在window体系下的开发学习。
环境
jdk 1.8
springboot 2.7.1
windows 体系
安装 winutils
下载所在: https://github.com/steveloughran/winutils
大概关注微信公众号:
张家的小伙子
,复兴关键字:
winutils
来获取网盘下载所在.
下载完成后,解压出来到某个路径下。此处我解压到
G:\hadoop\
下
注意
:此处的所在在以下的代码中使用到
解压得到以下结构的目次.以下目次对应的是各个版本的hadoop的bin目次。此处是使用的是3.0.0版本。
在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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.1</version>
</parent>
<groupId>org.example</groupId>
<artifactId>SpringBootSparkDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<java.version>8</java.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<fastjson2.version>2.0.9</fastjson2.version>
<lombok.version>1.18.24</lombok.version>
<spring-boot-starter-test.version>3.3.5</spring-boot-starter-test.version>
<spring-boot-starter.version>2.7.1</spring-boot-starter.version>
<spark-core.version>3.5.3</spark-core.version>
<spark-sql.version>3.5.3</spark-sql.version>
<janino.version>3.1.12</janino.version>
<junit.version>4.13.2</junit.version>
</properties>
<dependencies>
<!-- fastjson2 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson2.version}</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!--spring-boot-starter-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-boot-starter.version}</version>
</dependency>
<!--spark start-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.13</artifactId>
<version>${spark-core.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.13</artifactId>
<version>${spark-sql.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>${janino.version}</version>
</dependency>
<!--spark end-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot-starter-test.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
复制代码
创建SparkConfig类
此类主要用于声明spark的配置,包罗spark的运行模式,spark的运行环境等。
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* spark配置类
*/
@Configuration
public class SparkConfig {
// 从配置文件中注入Spark应用的名称
@Value("${spark.app.name}")
private String appName;
// 从配置文件中注入Spark master的URL
@Value("${spark.master.url}")
private String masterUrl;
/**
* 配置SparkConf对象,声明Spark应用的运行模式和运行环境
* @return SparkConf 返回spark配置对象
*/
@Bean
public SparkConf sparkConf() {
// 在步骤:准备hadoop环境 中方案2的地址,可以根据自己电脑的实际情况修改。此处使用的是hadoop-3.0.0的版本。
System.setProperty("hadoop.home.dir", "G:\\hadoop\\winutils-master\\hadoop-3.0.0");
// 创建SparkConf对象
return new SparkConf()
.setAppName(appName)
.setMaster(masterUrl);
}
/**
* JavaSparkContext 是 Apache Spark 提供的一个类,用于创建和管理 Spark 上下文。
* 它是 Spark 应用程序的入口点,提供了与 Spark 集群交互的能力
* @return
*/
@Bean
public JavaSparkContext sparkContext() {
return new JavaSparkContext(sparkConf());
}
/**
* SparkSession 是 Apache Spark 2.x 版本中引入的一个统一的入口点,用于创建 DataFrame、Dataset 和 SQL 查询。
* 它封装了 Spark 的各种上下文(如 SparkContext、SQLContext 等)
*/
@Bean
public SparkSession sparkSession() {
return SparkSession.builder().sparkContext(sparkContext().sc()).getOrCreate();
}
}
复制代码
配置参数
在application.yml文件中添加如下配置:
# spark相关配置
spark:
# spark应用配置
app:
# 应用名称
name: sparkDemo
# spark master主节点配置
master:
# 主节点运行模式配置,可选值:local、yarn、mesos、k8s
# 此处使用本地模式
url: local[*]
# 日志配置
logging:
# 日志级别
level:
# 根日志级别。 off:关闭springboot的日志,本地学习时关闭后可以更清楚查看spark的日志输出
root: off
复制代码
测试整合效果
创建一个定时使命类,用于测试整合是否乐成。
[code][/code] 输出词频统计效果如下图。阐明已经乐成整合:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
数据人与超自然意识
金牌会员
这个人很懒什么都没写!
楼主热帖
4. 事务和锁
kubernetes使用学习(k8s)
【记录】Python爬虫|爬取空间PC版日志 ...
OSPF多区域
渗透测试02
2023团队天梯模拟赛 L2-3 智能护理中心 ...
Java Long类的bitCount()方法具有什么 ...
循序渐进介绍基于CommunityToolkit.Mvv ...
那些年你用过最好的键盘
【 安信可海思Hi-12F模组】AT指令入门 ...
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表