java-spark的使用和配置
# 前言
spark在java使用比较少,多是scala的用法,我这里介绍一下我在项目中使用的代码配置 详细算法的使用请点击我主页列表查看
# 版本
jar | 版本 | 说明 |
---|---|---|
spark | 3.0.1 | |
scala | 2.12 | 这个版本注意和spark版本对应,只是为了引jar包 |
springboot版本 | 2.3.2.RELEASE |
# maven
<!-- spark -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>${spark.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.12</artifactId>
<version>${spark.version}</version>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>${janino.version}</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# yml
spark:
name: spark-web
# 我使用的local模式
master: local[*]
#用于存储mpp输出文件和RDD缓存文件,常配置在SSD等存储设备上,可以通过逗号分隔指定多个目录。
local-dir: D://spark-tmp
# 内存
memory: 2147480000
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# config
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.spark.SparkContext;
import org.apache.spark.sql.SparkSession;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* spark配置项
*
* @author teler
*/
@ToString
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = "spark")
public class SparkConfig {
private String name;
private String master;
private String localDir;
private String memory;
@Bean
public SparkSession sparkSession() {
return SparkSession.builder()
.appName(name)
.master(master)
.config("spark.testing.memory", memory)
.config("spark.local.dir", localDir)
.getOrCreate();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
编辑 (opens new window)
上次更新: 2024-11-06, 19:27:10