Spark知识点

Spark知识点

1.Spark的使用场景

Spark官网给出的说法:Spark是一个通用的快速分析引擎。Spark为我们常见的批处理、流处理、数据探索(数据挖掘)、机器学习等场景提供了很好的解决方案,任何有数据分析需求的人都可以使用。

2.“三架马车”

从 2003 年到 2006 年,Google 分别在 ODSI 与 SOSP 发表了 3 篇论文,引起了业界对于分布式系统的广泛讨论,这三篇论文分别是:

SOSP2003:The Google File System; 分布式文件系统(GFS)

ODSI2004:MapReduce: Simplifed Data Processing on Large Clusters; 分布式计算框架(MapReduce)

ODSI2006:Bigtable: A Distributed Storage System for Structured Data。 分布式数据存储(Hbase)

3.Hadoop的各个版本特点

1)Hadoop1.0:主节点可靠性差,没有热备。作业过多使得调度成为瓶颈。资源利用率低,并且不能适配其他分布式计算框架

2)Hadoop2.0:引入了资源管理和调度系统Yarn。HDFS变成了很多系统的底层存储,Yarn兼容多种计算框架。

3)Hadoop3.0:MR变为基于内存+IO+磁盘共同处理数据。

4.统一资源管理与调度—Yarn

统一是所有计算框架对于资源的获取都是一致的。资源的维度有两个:CPU和内存。调度的宏观机制目前有三种:集中式调度器、双层调度器、状态共享调度器

5.Yarn调度流程

在这里插入图片描述

第 1 步:客户端向 ResourceManager 提交自己的应用,这里的应用就是指 MapReduce 作业。

第 2 步:ResourceManager 向 NodeManager 发出指令,为该应用启动第一个 Container,并在其中启动 ApplicationMaster。

第 3 步:ApplicationMaster 向 ResourceManager 注册。

第 4 步:ApplicationMaster 采用轮询的方式向 ResourceManager 的 YARN Scheduler 申领资源。

第 5 步:当 ApplicationMaster 申领到资源后(其实是获取到了空闲节点的信息),便会与对应 NodeManager 通信,请求启动计算任务。

第 6 步:NodeManager 会根据资源量大小、所需的运行环境,在 Container 中启动任务。

第 7 步:各个任务向 ApplicationMaster 汇报自己的状态和进度,以便让 ApplicationMaster 掌握各个任务的执行情况。

第 8 步:应用程序运行完成后,ApplicationMaster 向 ResourceManager 注销并关闭自己。

6.Spark on Yarn的调度方式

Spark自己实现了一个集中式调度器Driver,用来调度作业内的计算任务。本质是Driver在Yarn中注册成为(框架调度器)二级调度器,是一种曲线救国的双层调度实现方式。

7.Spark RDD(弹性分布式数据集)是对数据的核心抽象,实质上是一组分布式的JVM不可变对象的集合。

弹性体现在出错之后的血缘回溯、转换时分区位置及数量的不确定性。

8.创建RDD的几种方式

并行化集合
val rdd = spark.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop和Spark是大数据处理领域中最流行的两个框架。以下是它们的知识点整理汇总: Hadoop: 1. Hadoop是一个开源的分布式计算框架,用于存储和处理大规模数据集。 2. Hadoop包括两个核心组件:HDFS(Hadoop分布式文件系统)和MapReduce(分布式计算框架)。 3. HDFS是一个分布式文件系统,用于存储大规模数据集。它将数据分成块并存储在不同的节点上,以实现数据的高可靠性和可扩展性。 4. MapReduce是一种分布式计算框架,用于处理大规模数据集。它将数据分成小块并在不同的节点上并行处理,以实现高效的数据处理。 5. Hadoop还包括其他组件,如YARN(资源管理器)和HBase(分布式NoSQL数据库)。 Spark: 1. Spark是一个快速、通用、可扩展的分布式计算框架,用于处理大规模数据集。 2. Spark的核心组件是Spark Core,它提供了分布式任务调度、内存计算和数据处理功能。 3. Spark还包括其他组件,如Spark SQL(用于结构化数据处理)、Spark Streaming(用于实时数据处理)和MLlib(用于机器学习)。 4. Spark使用RDD(弹性分布式数据集)作为其基本数据结构,它是一个可分区、可并行计算和可恢复的数据集合。 5. Spark支持多种编程语言,如Scala、Java、Python和R。 总结: Hadoop和Spark都是用于处理大规模数据集的分布式计算框架,它们有不同的核心组件和特点。Hadoop主要用于存储和处理大规模数据集,而Spark则更加注重数据处理的速度和效率。在实际应用中,可以根据具体需求选择合适的框架。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值