说明
本例子是使用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