目录

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

# 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

# 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
上次更新: 2024-01-03, 13:22:13
最近更新
01
2023年度总结
01-03
02
MongoDB的简单的常用语法
12-11
03
cetnos7通过nfs共享磁盘文件
11-24
更多文章>