大数据开发初识Spark(第二十九篇)

224 阅读2分钟

一、什么是Spark

  1. Spark是一个用于大规模数据处理的统一计算引擎
  2. Spark中一个最重要的特征就是基于内存进行计算,从而让它的速度可以达到MapReduce的几十倍甚至上百倍
1.1、Spark的特点
  1. 计算速度快。是hadoop的100倍
  2. 易用性
  3. 通用性
  4. Runs Everywhere
1.2、Spark与Hadoop的对比
  1. 综合能力:Hadoop是一个综合性质的计算引擎,Hadoop既包含MapReduce,还是包含HDFS(存储)和Yarn(资源管理)
  2. 计算模型:SparK任务可以包含多个计算操作,轻松实现复杂迭代计算,Hadoop中MapReduce任务只包含Map和Reduce阶段,不够灵活
  3. 处理速度:Spark任务的数据时存放在内存中的,而Hadoop中MapReduce任务是基于磁盘的

Spark与Hadoop的对比

二、Spark安装

  1. Standalone:独立集群
  2. ON YARN:共用Hadoop集群资源(推荐)

官网下载地址:spark.apache.org/downloads.h…

启动命令提示:spark.apache.org/docs/latest…

下面演示的是ON YARN安装

  1. 解压安装包

    tar -zxvf spark-3.3.1-bin-hadoop3.tgz

  2. 修改spark的配置

    进入spark的conf目录

    cd /root/software/spark-3.3.1-bin-hadoop3/conf

    mv spark-env.sh.template spark-env.sh

  3. 在spark-env.sh增加配置

    export JAVA_HOME=/root/software/jdk1.8.0_341

    export HADOOP_CONF_DIR=/root/software/hadoop-3.3.4/etc/hadoop

  4. 配置Spark全局环境变量

    vi /etc/profile

    export SPARK_HOME=/root/software/spark-3.3.1-bin-hadoop3

    export PATH=

  5. 启动spark,提交任务

    ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster /root/software/spark-3.3.1-bin-hadoop3/examples/jars/spark-examples_2.12-3.3.1.jar 2

  6. 打开hadoop网页http://192.168.234.100:8088/cluster/apps

    Spark任务

三、Spark的工作原理

Spark工作原理

3.1、什么是RDD
  1. RDD通常通过Hadoop上的文件(即HDFS文件)进行创建,也可以通过程序中的集合来创建
  2. RDD是Spark提供的核心抽象,全称为:Resillient Distributed DataSet,即弹性分布式数据集
  3. 弹性:RDD数据默认情况下存放在内存中,但是在内存资源不足时,Spark也会自动将RDD数据写入磁盘
  4. 分布式:RDD在抽象上来说是一种元素数据的集合,它是被分区的,每个分区分布在集群中的不同节点上,从而让RDD中的数据可以被并行操作
  5. 容错性:RDD最重要的特性就是提供了容错性,可以自动从节点失败中恢复过来

四、Spark架构原理

  1. Driver:我们编写的Spark程序由Driver进程负责执行
  2. Master:集群的主节点中启动的进程
  3. Worker:集群的从节点中启动的进程
  4. Executor:由Worker负责启动的进程
  5. Task:由Executor负责启动的现冲,它是真正干活的

Spark架构原理