Spark-01: Spark编程基础

目录

1.Spak简介

2.spark 运行架构

3.Spark 部署模式

3.1 Local 模式

3.2 Standalone 模式

3.3 Yarn 模式

4. Spark 程序结构

5. Spark 提交任务


1.Spak简介

        Apache Spark是一个通用的、基于内存的分布式计算引擎,用于大规模数据处理。它的核心原理是将数据分散到多台计算机上并在这些计算机上并行执行计算任务,从而实现高效的数据处理和分析。

2.spark 运行架构

        Spark 框架的核心是一个分布式计算引擎,它采用了标准 master-slave 的结构。如下图所示,它展示了一个 Spark 执行时的基本结构。图形中的 Driver 表示 master,负责管理整个集群中的作业任务调度。图形中的 Executor 则是 slave,负责实际执行任务。

  • SparkContext:Spark应用程序的入口,负责与Cluster Manager进行通信,协调集群资源的分配。
  • Driver:运行SparkContext的节点,负责任务的调度和管理。
  • Executor:是集群中工作节点(Worker Node)上运行的JVM进程,负责执行具体的任务,任务彼此之间互相独立。Executor为Spark应用程序提供分布式计算和数据存储功能。
  • Cluster Manager:负责管理整个Spark集群,与SparkContext进行通信,分配集群资源。可以是Spark自带的集群管理器,也可以是其他的集群管理系统如Hadoop YARN、Mesos等。

3.Spark 部署模式

3.1 Local 模式

        所谓的 Local 模式,就是不需要其他任何节点资源就可以在本地执行 Spark 代码的环境,解压即可使用。

3.2 Standalone 模式

        Local 本地模只适用于练习环境,生产环境中还是需要到集群中去执行任务。Spark 的 Standalone 模式是经典的 master-slave 模式。

        Standalone 模式具体部署步骤请参考:搭建环境05:部署Spark-Standalone模式-CSDN博客

3.3 Yarn 模式

       Standalone模式由 Spark 自身提供计算资源,无需其他框架提供资源。Spark是计算框架,资源管理不是它的强项,可由更专业的Yarn框架负责资源管理。

        Yarn 模式具体部署部署请参考:部署Spark-YARN模式-CSDN博客

4. Spark 程序结构

        Spark程序一般可包含以下几个部分构成:
        1.初始化SparkContext对象
        2.加载数据源
        3.对数据进行加工
        4.输出加工后的数据
        5.停止SparkContext

  • Java代码示例
package com.yichenkeji.demo.sparkjava;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function;

import java.util.Arrays;
import java.util.List;

public class SparkApp {
    public static void main(String[] args) {
        //1.初始化SparkContext对象
        SparkConf sparkConf = new SparkConf().setAppName("Spark Java").setMaster("local[*]");
        JavaSparkContext sc = new JavaSparkContext(sparkConf);
        //2.加载数据源:员工工资
        List<Integer> salary = Arrays.asList(1000,2000,3000,4000,4000);
        JavaRDD<Integer> salaryRDD = sc.parallelize(salary);
        //3.对数据进行加工:全部员工工资翻倍
        JavaRDD<Integer> salaryMap = salaryRDD.map(new Function<Integer, Integer>() {
            @Override
            public Integer call(Integer s) throws Exception {
                return s * 2;
            }
        });
        //4.输出加工后的数据:直接打印到控制台
        salaryMap.collect().forEach(s->System.out.println(s));
        //5.停止SparkContext
        sc.stop();
    }
}
  • Scala代码示例
package com.yichenkeji.demo.sparkscala

import org.apache.spark.{SparkConf, SparkContext}

object SparkApp {
  def main(args: Array[String]): Unit = {
    //1.初始化SparkContext对象
    val sparkConf = new SparkConf().setAppName("Spark Scala").setMaster("local[*]")
    val sc = new SparkContext(sparkConf)
    //2.加载数据源:员工工资
    val salary = Array(1000,2000,3000,4000,5000)
    val salaryRDD = sc.parallelize(salary)
    //3.对数据进行加工:全部员工工资翻倍
    val salaryMap = salaryRDD.map(s=>{
      s*2
    })
    //4.输出加工后的数据:直接打印到控制台
    salaryMap.collect().foreach(s => println(s))
    //5.停止SparkContext
    sc.stop()
  }
}

5. Spark 提交任务

 ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://01.weisx.com:7077 ./examples/jars/spark-examples_2.12-3.2.3.jar 10

1) --class 表示要执行程序的主类
2) --master spark://01.weisx.com:7077 独立部署模式,连接到 Spark 集群
3) spark-examples_2.12-3.2.3.jar 运行类所在的 jar 包
4) 数字 10 表示程序的入口参数,用于设定当前应用的任务数量

        spark-submit常用参数说明      

参数名称参数说明
master设置主节点 URL 的参数。支持:
local: 本地机器。
spark://host:port:远程 Spark 单机集群。
yarn:yarn 集群
deploy-mode允许选择是否在本地(使用 client 选项)启动 Spark 驱动程序,或者在集群内(使用 cluster 选项)的其中一台工作机器上启动。默认值是 client。
num-executors配置 Executor 的数量
executor-memory配置每个 Executor 的内存大小
executor-cores配置每个 Executor 的虚拟 CPU core 数量

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spark 基础环境是指安装和配置 Spark 所需的软件和硬件环境。Spark 运行需要 Java 环境和 Hadoop 环境,同时也需要配置 Spark 的相关参数,如内存大小、CPU 核数等。在安装和配置好基础环境后,我们才能使用 Spark 进行数据处理和分析。 ### 回答2: Spark是一个快速、可扩展且容错的大数据处理框架,提供了丰富的API和工具,可以处理大规模的数据集。 搭建Spark基础环境包括以下几个步骤: 1. 安装Java:Spark是基于Java开发的,因此首先需要安装Java开发环境。可以从Oracle官网下载并安装适合操作系统的Java版本。 2. 下载Spark:在Apache Spark官网下载最新版本的Spark压缩包,并解压到指定目录。 3. 配置环境变量:将Spark的bin目录添加到系统的环境变量中。这样可以方便地在任意位置运行Spark的命令。 4. 配置Spark集群:如果需要在多台机器上运行Spark应用程序,需要进行集群配置。首先,在每台机器上安装好Java,并将Spark解压到相同的目录。然后,编辑Spark的配置文件,设置集群的主节点和从节点。 5. 验证安装:通过在终端运行spark-shell命令,验证Spark是否正确安装。spark-shell命令会启动一个Scala解释器,并连接到Spark集群。 6. 运行第一个Spark应用程序:编写一个简单的Spark应用程序,如WordCount,用于统计文本文件中单词的个数。将程序保存为Scala文件,并使用spark-submit命令来运行。 以上就是搭建Spark基础环境的主要步骤。搭建好Spark环境后,可以使用Spark提供的丰富API和工具来进行大数据处理和分析,如数据清洗、转换、机器学习等。Spark的功能强大且易于使用,适用于各种大规模数据处理场景。 ### 回答3: Spark是一个快速通用的集群计算系统,它提供了高效的数据处理和分析能力。要运行Spark,我们需要配置和搭建一些基础环境。 首先,我们需要安装Java JDK。Spark运行在Java虚拟机上,因此我们需要安装适当版本的Java开发工具包。通常建议使用Oracle JDK的最新稳定版本,然后设置JAVA_HOME环境变量。 其次,我们需要安装Spark本身。Spark官方网站提供了预编译的二进制发行版,我们可以从网站上下载并解压缩到我们喜欢的位置。然后,我们可以设置SPARK_HOME环境变量,以便在终端窗口中使用Spark命令。 接下来,我们需要选择一个合适的集群管理器来运行Spark应用程序,比如Standalone模式、Hadoop YARN和Apache Mesos等。我们需要根据自己的需求进行选择和配置。例如,在Standalone模式下,我们需要启动一个Spark Master和多个Spark Worker来管理和运行任务。 最后,在运行Spark应用程序之前,我们需要通过编写一个Spark应用程序来使用Spark的功能。Spark提供了Java、Scala和Python等多种编程语言的API。我们可以使用任何一种编程语言来编写应用程序并在Spark上运行。 总之,Spark基础环境搭建包括安装Java JDK、安装Spark本身、选择和配置集群管理器,以及编写Spark应用程序。搭建好这些基础环境后,我们就可以开始使用Spark进行快速、高效的集群计算了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_37559973

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值