美文网首页
Spark从入门到精通(一) - 简介

Spark从入门到精通(一) - 简介

作者: ElliotG | 来源:发表于2020-07-15 11:08 被阅读0次

1. Spark是什么

Apache Spark是一个在集群上运行的统一计算引擎以及一组并行数据处理软件库。

Spark是目前最流行的开源大数据处理引擎。
它支持多种编程语言(eg: Scala, Java, Python, R)
提供支持SQL, 流处理, 机器学习等多种任务的软件库。

Spark的组件架构图


Spark的组件架构图

 

2. 启动Spark

准备条件:
从Spark官网下载Spark包(Pre-built for Hadoop 2.7 and later)
在bash中设置SPARK_HOME并加入到Path

  • 启动Scala控制台
    spark-shell

  • 启动Python控制台
    pyspark

  • 启动SQL控制台
    spark-sql

 

3. Spark的基本架构

Spark的软件架构为管理和协调跨多态计算机(服务器)的计算任务。

Spark应用程序由一个驱动器进程和一组执行器进程组成。

  • 驱动器进程(Spark应用程序的核心)
    驱动器进程运行main()函数
    驱动器进程位于集群中的一个节点上
    驱动器进程负责三件事:
    a. 维护Spark应用程序的相关信息
    b. 回应用户的程序或输入
    c. 分析任务并分发给若干执行器进行处理

  • 执行器
    执行器负责执行驱动器分配给它的实际计算工作
    执行器负责两件事:
    a. 执行分配的代码
    b. 将计算状态报告给驱动器

Spark应用程序架构图


Spark应用程序架构图

 

4. 一些关键概念

  • DataFrame
    DataFrame是Spark中最常见的结构化API。

DataFrame是包含行和列的数据表。

也许有人会说,这和我们熟悉的Excel的电子表格有什么区别呢?

那我告诉你,区别就在于:
普通的电子表格是位于一台计算机上的,而Spark DataFrame是可以跨越数台甚至数千台计算机的。
事实上,它是一个分布式表格。

Spark DataFrame架构图


Spark DataFrame架构图

注: DaraFrame概念并不是Spark独有的,Python和R语言都有类似的概念。但是,Python和R的DataFrame只存在于一台机器上,而Spark的DataFrame存在于多态机器上。并且,由于Spark具有Python和R的接口,可以轻易地将Python和R的DataFrame转换为Spark的DataFrame。

  • 数据分区

为了让多个执行器并行地工作,Spark将数据分解成多个数据块,每个数据块叫做一个分区。

分区在物理上体现为在集群中的一台物理机上的多行数据的集合。

相关文章

网友评论

      本文标题:Spark从入门到精通(一) - 简介

      本文链接:https://www.haomeiwen.com/subject/lprdhktx.html