花开不停 花开不停
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)

花开不停

此心光明,亦复何言
首页
  • 追忆杂谈
  • 书信往来
  • 旅行记录
  • 文定之喜
  • 黄金屋-颜如玉
  • 程序化广告
  • 禅茶一味
  • 随写编年
  • 家人物语
  • 追忆青春
  • 大千世界
  • Shell
  • Java
  • Spark
  • Hadoop
  • ClickHouse
  • MySQL
  • PostgreSQL
  • MongoDB
  • 调度器
  • Zookeeper
  • Kafka
  • Flume
  • 学习周刊
关于
  • 分类
  • 标签
  • 归档
开往 (opens new window)
  • Shell编程

  • Java编程笔记

  • Spark

    • Spark On Yarn 部署
    • Spark本地Idea开发环境部署
      • 1. 软件下载
      • 2. 安装
        • 2.1. 解压放在自己的安装目录
        • 2.2. 配置环境变量
        • 2.3. Idea安装scala插件
      • 3. Idea配置
        • 3.1. 创建项目
        • 3.2. Spark 的配置文件
      • 4. 开发Spark
        • 4.1. 配置pom.xml
        • 4.2. WordCount
        • 4.3. 打包插件
        • 4.3. 打包发布
    • SparkStreaming消费Kafka
    • Spark-submit 参数配置
    • SparkStreaming开发示例
    • Zeppelin Spark解释器
  • Hadoop

  • ClickHouse

  • MySQL

  • PostgreSQL

  • MongoDB

  • 调度器

  • Zookeeper

  • Kafka

  • Flume

  • 编程世界
  • Spark
花开不停
2024-03-08
目录

Spark本地Idea开发环境部署原创

# 1. 软件下载

  • Spark下载:

版本:spark-3.5.0-bin-hadoop3.tgz(对应hadoop3.3.1版本)

网址:https://archive.apache.org/dist/spark/spark-3.5.0/ (opens new window)

  • scala下载:

版本:scala-2.12.18.zip(Windows版本)

网址:https://www.scala-lang.org/download/2.12.18.html (opens new window)

  • 默认Jdk已安装

# 2. 安装

# 2.1. 解压放在自己的安装目录

D:\app\scala-2.12.18

D:\app\spark-3.5.0-bin-hadoop3

# 2.2. 配置环境变量

SCALA_HOME=D:\app\scala-2.12.18
SPARK_HOME=D:\app\spark-3.5.0-bin-hadoop3

### 添加PATH
%SPARK_HOME%\bin
%SCALA_HOME%\bin
1
2
3
4
5
6

# 2.3. Idea安装scala插件

可以在线安装,就直接idea插件库下载,然后重启idea(必须重启)

  • 离线安装,scala插件下载

版本:2022.1.5(根据自己的Idea版本下载)

网址:https://plugins.jetbrains.com/plugin/1347-scala/versions#tabs (opens new window)

下载完放在idea的plugin目录下

D:\app\idea_2022\plugins

# 3. Idea配置

# 3.1. 创建项目

  • 创建Maven项目;(此时你会发现,无法新建 Scala Class)

  • File -> Project Struture -> Global Libraies -> + Scala SDK

  • main/ 目录新建 scala; Mark Directory as -> Source Root

  • 此时你已经可以编写 scala 代码了

# 3.2. Spark 的配置文件

  • 下载Spark集群的 core-site.xml , log4j.properties 放在 resources下

# 4. 开发Spark

# 4.1. 配置pom.xml

<properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <scala.version>2.12.18</scala.version>
        <spark.version>3.5.0</spark.version>
        <hadoop.version>3.3.3</hadoop.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-cos</artifactId>
            <version>${hadoop.version}</version>
        </dependency>

        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <!-- 外部集群支持 -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-yarn_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>
    </dependencies>

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
41
42
43
44
45
46
47
48
49
50
51
52
53

# 4.2. WordCount

object WordCount {
	def main(args: Array[String]): Unit = {
		//local[*] , yarn
		val spark: SparkSession = SparkSession.builder().master("yarn").appName("word count").getOrCreate()
		val sc: SparkContext = spark.sparkContext
		val rdd: RDD[String] = sc.textFile("cosn://bucket/weic/bigdata/spark/hehe.txt")
		val counts: RDD[(String, Int)] = rdd.flatMap(_.split(",")).map((_, 1)).reduceByKey(_ + _)
		counts.collect().foreach(println)
		counts.saveAsTextFile("cosn://bucket/weic/bigdata/spark/output/WordCount")
		counts.repartition(1).saveAsTextFile("cosn://bucket/weic/bigdata/spark/output/WordCount2")
	}

}
1
2
3
4
5
6
7
8
9
10
11
12
13

# 4.3. 打包插件

    <build>
       <resources>
           <resource>
               <directory>src/main/resources</directory>
               <excludes>
                   <exclude>*</exclude>
               </excludes>
           </resource>
       </resources>

        <plugins>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <scalaVersion>${scala.version}</scalaVersion>
                    <args>
                        <arg>-target:jvm-1.5</arg>
                    </args>
                </configuration>
            </plugin>
        </plugins>
    </build>
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

# 4.3. 打包发布

mvn clean package

  • jar包上传集群
$ spark-submit 
--master yarn  \
--deploy-mode cluster  \
--class com.spark.WordCount  \
--executor-memory 7g   \
--executor-cores 14  \
--num-executors 9 spark-extractor-1.0-SNAPSHOT.jar > ../logs/WordCount-2024-03-08.log
1
2
3
4
5
6
7
上次更新: 2024/06/28, 14:46:16

← Spark On Yarn 部署 SparkStreaming消费Kafka→

最近更新
01
2025-05-26当我意识到我变得自私、暴躁、情绪不受控制 原创
05-26
02
clickhouse版本升级的语法变动21.8.9.1至23.8.9.1 原创
04-22
03
2025-03-28拍婚纱照 原创
04-02
更多文章>
Theme by Vdoing | Copyright © 2023-2025 | 京ICP备2023013437号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式