Spark-core &Spark-sql &SparkStreaming复习总结

SparkCore

架构设计图
在这里插入图片描述
名词解释
1.RDD(Resilient Distributed DataSet)
弹性分布式数据集,是对数据集在spark储存和计算过程中的一种抽象
是一组只读可分区的分布式数据集合
一个RDD包含多个分区Partition(类似mapreduce中的inputSplit,文件大小超过128mb时,默认切分),分区是按照一定规则,将具有相同规则的属性数据放在一起
横向上可切分并行计算,以分区partition为切分后的最小储存和计算单元
纵向上可以进行内存/外存切换使用,当数据在内存不足时,使用外存补充
2.partition(分区)
partition类似hadoop的split,计算是以partition为单位进行的,提供了一种划分数据的方式
partition的划分依据有很多,常见的有hash分区,范围分区等,也可以自己定义的,像hdfs文件,划分的方式就和MR一样,以文件的block来划分不同的partition
一个partition交给一个task去计算处理
3.算子
简称:Operator ,Op
广义上讲,对任何函数进行某一项操作都可以认为是一个算子
通俗上讲,算子即为映射,关系,变换
MR算子,主要分为两个,一个是Map,一个是Reduce两个主要操作的算子,导致灵活可用性比较差
spark算子分为两大类(scala算子),行动算子-转换算子:Action op和 Transformation op 合计有80多个
并且支持链式调用,所以强大
4.Transformation Operator
操作是延迟计算的,也就是说从一个RDD转换生成另一个RDD的转换运算不是马上执行,而是需要等到有action操作的时候才会真正触发操作-联想记忆法:类比spring 框架的 lazy init 懒加载单例初始化对象配置,单例模式中的懒汉模式
细分:
value数据类型的transformation算子
key-value数据类型的transformation算子
5.Action类算子
会触发spark提交作业,并将数据输出到spark系统
6.窄依赖
如果一个父RDD的每个分区只被一个RDD分区使用,一对一关系
7.宽依赖
如果一个父RDD的每个分区都要被子RDD的多个分区使用,一对多关系
8.Application
spark Application的概念和mr中的job或者yarn中的application manager下的application类似,指的是用户编写spark应用程序,包含了一个driver工鞥呢的代码块,和分布在集群中多个节点上运行的executor代码
一般是指整个spark项目从开发,测试.部署,运行的全部抽象
9.Driver
运行main函数并创建sparkContext:连接器(中枢神经)
被称为驱动程序:driver program类似于hadoop的wordcount程序中的driver类的main函数
10.Cluster Manager
集群的资源管理器,在集群上获取资源的服务,如yarn mesos,spark Standalone等
以yarn为例,驱动程序会向yarn申请计算我这个任务需要多少内存,多少cpu,然后由cluster manager调度告诉驱动程序可以使用多少,然后驱动程序将任务分配到既定的worker node节点上执行
11.WorkerNode
集群中任何一个可以运行spark应用代码的节点
worker node就是物理机器节点.可以在上面启动executor进程

12.Executor
Applicationyunxing

### 回答1: 1. 什么是Spark Core?它的作用是什么? Spark CoreSpark的核心组件,它提供了分布式任务调度、内存计算和数据存储等基础功能,是Spark的基础架构。Spark Core的作用是管理集群资源,将任务分配给集群中的节点进行计算,并将计算结果返回给驱动程序。 2. Spark SQL是什么?它的作用是什么? Spark SQLSpark生态系统中的一个组件,它提供了一种基于SQL语言的数据处理方式,可以方便地处理结构化数据。Spark SQL的作用是将结构化数据转换为RDD,然后利用Spark Core进行分布式计算,最后将计算结果返回给用户。 3. 什么是Spark Streaming?它的作用是什么? Spark StreamingSpark生态系统中的一个组件,它提供了一种实时数据处理方式,可以对流式数据进行实时计算。Spark Streaming的作用是将流式数据分成一系列小批次进行处理,然后利用Spark Core进行分布式计算,最后将计算结果返回给用户。 4. Spark CoreSpark SQL的区别是什么? Spark CoreSpark的核心组件,提供了分布式任务调度、内存计算和数据存储等基础功能;而Spark SQL是基于SQL语言的数据处理组件,可以方便地处理结构化数据。Spark Core主要用于处理非结构化数据,而Spark SQL主要用于处理结构化数据。 5. Spark StreamingSpark Core的区别是什么? Spark StreamingSpark生态系统中的一个组件,提供了一种实时数据处理方式,可以对流式数据进行实时计算;而Spark CoreSpark的核心组件,提供了分布式任务调度、内存计算和数据存储等基础功能。Spark Streaming主要用于处理实时数据,而Spark Core主要用于处理批处理数据。 ### 回答2: Spark是一个快速、通用、可扩展的计算引擎,可以处理大规模的数据。Spark的核心是Spark Core,它提供了任务调度、内存管理、错误恢复和与存储系统的交互等基本功能,同时还提供了对分布式数据集的RDD(Resilient Distributed Datasets)的支持。 以下是大数据基础面试题五中的关于Spark Core的问题及回答: 1. 什么是Spark CoreSpark CoreSpark的核心组件,提供了Spark的核心功能。它是一个通用型计算引擎,可用于大规模数据处理和分布式系统开发。 2. Spark Core有哪些特征? Spark Core有以下特征: (1)速度快:通过内存计算和基于迭代式计算模型的优化,Spark可以比MapReduce更快地进行大规模数据处理。 (2)用户友好:Spark提供了ScalaJava和Python等编程语言的API,支持丰富的数据处理操作,如Map、Filter、Reduce和Join等。 (3)内存计算:Spark将数据缓存在内存中,可在运行时动态调整内存使用情况,这一特性使得Spark更加高效。 (4)易于扩展:Spark可在多个节点上运行,并支持动态添加节点,从而更好地处理大规模数据处理任务。 3. Spark CoreHadoop的MapReduce有何不同? 与Hadoop的MapReduce相比,Spark Core具有以下不同之处: (1)速度快:Spark采用基于内存的计算方式,不要将数据频繁写入磁盘,从而能够比MapReduce更快地处理数据。 (2)支持更多的操作:Spark提供了更多的操作,如Filter、Join、GroupBy和Distinct等,而MapReduce只支持Map和Reduce操作。 (3)缓存机制:Spark支持缓存数据,避免了MapReduce要重复读取磁盘数据的问题。 4. RDD是什么?它有哪些特征? RDD是Resilient Distributed Dataset的缩写,指弹性分布式数据集。它是Spark的核心数据结构之一。RDD被设计为可靠、高度可扩展的数据处理模型,可以在多个节点上进行并行计算。 RDD具有以下特征: (1)分片:RDD将数据划分为多个小的数据块,然后在不同的节点上并行处理。 (2)不可变:RDD是不可变的,一旦创建就无法修改,只能进行转换操作来创建新的RDD。 (3)容错:RDD具有容错机制,如果有节点出现故障,Spark可以自动重新计算数据。 (4)缓存:RDD支持缓存机制,缓存后可以在内存中快速访问数据。 5. 如何创建RDD? 创建RDD要以下步骤: (1)获取SparkContext对象:首先要创建一个SparkContext对象,它是管理Spark应用程序的入口点。 (2)获取数据:从文件系统、HDFS或其他数据源中获取数据。 (3)创建RDD:通过将数据分割为一组元素来创建RDD。 例如,以下代码可以从文件系统中获取数据,并创建一个RDD: val sc = new SparkContext(“local”, “Word Count App”) val lines = sc.textFile(“/path/to/file”) val words = lines.flatMap(line => line.split(“ “)) val wordCounts = words.map(word => (word, 1)).reduceByKey((a, b) => a + b) ### 回答3: Spark Core是Apache Spark的最基本组成部分,它主要负责管理整个Spark集群及其资源,并支持在集群上进行分布式数据处理。它提供了分布式任务的调度、内存管理、任务的容错等核心功能。下面就Spark Core的一些重要特性进行详细介绍。 1. RDD数据模型:RDD的全称是Resilient Distributed Datasets,叫做弹性分布式数据集。它是Spark Core的核心概念,用于存储和处理分布式数据。RDD的特点是容错、分布式和数据流式处理,并且可以进行缓存、存储和检索等操作。RDD在Spark核心计算引擎中发挥着重要的作用。 2. 分布式任务调度:Spark Core可以自动将任务分配到整个集群中的多个节点上进行处理。Spark可以按照一定的优先级或算法将任务分解成多个小任务,并对这些任务进行动态地调度管理。Spark的调度器支持动态调整任务的优先级和切换运算模式。 3. 内存管理机制:Spark Core可以通过任务的内存使用限制,对每个任务进行内存管理和限制,自动捕获运行过程中的内存错误,并且可以及时恢复失败的任务。此外,Spark还提供了多种内存管理标准和检查机制,方便用户了解程序的运行情况和内存使用状态。 4. 任务容错机制:在高并发环境下,任务容错机制非常关键。Spark Core提供了一系列的容错机制和恢复机制,例如,当一个节点发生了故障或者内存错误时,Spark会自动将处理不完的任务重新分发到另一个可用节点上进行处理。 5. 实时数据处理:Spark Core提供了不少实时数据处理的功能及接口。它可以进行实时数据的流式处理,支持基于时间滑动窗口的数据操作及处理,以及对实时数据的统计、分析和监控处理等。 通过对这些特性的了解,可以更好地理解Spark Core的实际应用场景,并且可以在面试过程中更好地回答Spark Core相关的问题。要注意的是,Spark Core在实际应用中还有很多细节和复杂的问题要考虑,要认真学习和实践才能掌握和应用好它的各种特性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值