基于内存的,用于大规模数据处理(离线计算、实时计算、快速查询(交互式查询))的统一分析引擎。 快: Spark计算速度是MapReduce计算速度的10-100倍 弹性分布式数据集(数据存储在内存),一个不可变、可分区、里面的元素可并行计算的集合 对多次使用的rdd进行缓存,缓存到内存,当后续频繁使用时直接在内存中读取缓存的数据,不需要重新计算。 (Persist、Cache) 将RDD结果写入硬盘(容错机制),当RDD丢失数据时,或依赖的RDD丢失数据时,可以使用持久化到硬盘的数据恢复。(MEMORY_ONLY(默认)、MEMORY_AND_DISK、DISK_ONLY) 位置:Persist 和 Cache将数据保存在内存;Checkpoint将数据保存在HDFS。 生命周期:Persist 和 Cache 程序结束后会被清除或手动调用unpersist方法;Checkpoint永久存储不会被删除。 RDD依赖关系(血统Lineage):Persist和Cache,不会丢掉RDD间的依赖链/依赖关系;Checkpoint会斩断依赖链。 窄依赖: 父RDD的一个分区只会被子RDD的一个分区依赖 DAG: 指的是数据转换执行的过程,有方向,无闭环(其实就是RDD执行的流程) 开始: 通过SparkContext创建的RDD 1.Spark应用被提交–>SparkContext向资源管理器注册并申请资源 (??) –>启动Executor 累加器accumulators: 累加器支持在所有不同节点之间进行累加计算 在每个机器上缓存一份、不可变的、只读的、相同的变量,该节点每个任务都能访问。起到节省资源的作用,和优化的所用。 用于处理结构化数据的Spark模块。 DataFrame和DataSet DataFrame是以RDD为基础的带有Schema元信息的分布式数据集。 含有类型信息的DataFrame就是DataSet 第1种: 指定列名添加Schema 创建SparkSession 创建SparkContext 读取数据并加工 设置表结构 创建DS DF 注册成表并查询 关闭SparkContext 、SparkSession 准备样例类 创建Sparkession 创建SparkContext 读取数据并加工 RDD转DF 注册成表并查询 关闭SparkContext 、SparkSession
什么是Spark
Spark特点
易用:(算法多)MR支持1种计算模型,Spsark支持更多的计算模型。
通用: Spark 能够进行离线计算、交互式查询(快速查询)、实时计算、机器学习、图计算等
兼容性: Spark支持大数据中的Yarn调度,支持mesos。可以处理hadoop计算的数据。Spark运行模式
Spark编写代码
SparkCore
什么是RDD
RDD的主要属性
每个分片都会被一个计算任务处理,分片数决定并行度。RDD的算子分为两类:
惰性计算,遇到Transformation不计算,遇到Action在真正计算。Rdd数据持久化什么作用?
SparkContext.setCheckpointDir(“目录”) //HDFS的目录 RDD.checkpoint()cache和Checkpoint的区别
什么是宽窄依赖
宽依赖: 父RDD的一个分区会被子RDD的多个分区依赖(涉及到shuffle)什么是DAG
DAG边界
结束: 触发Action,一旦触发Action就形成了一个完整的DAG
说明:
一个Spark应用中可以有一到多个DAG,取决于触发了多少次Action
一个DAG中会有不同的阶段/stage,划分阶段/stage的依据就是宽依赖
一个阶段/stage中可以有多个Task,一个分区对应一个TaskSpark概念
Spark执行任务的基本流程
2.RDD–>构建DAG–>DAGScheduler划分Stage形成TaskSet–>TaskScheduler提交Task–>Worker上的Executor执行Task累加器的作用
广播变量的作用
SparkSQL基本介绍
什么是SparkSQL?
SparkSQL底层的数据抽象
Hive和SparkSQL的对比
什么是DataFrame??
什么是DataSet??
(DataSaet=DataFrame+类型= Schema+RDD*n+类型)SparkSQL查询数据的形态
personDF.select(
“id“,“name”,
“age“+1).filter(“age”>25).show
spark.sql(“select * from personDFT where age >25”).show添加Schema的方式
第2种: 通过StructType指定Schema
第3种: 编写样例类,利用反射机制推断Schema指定列名添加Schema代码流程
通过StructType指定Schema代码流程
types.StructType( // 字段类型 (字段名,字段类型,是否为空) List(StructField("id",IntegerType,true) ) )
val ttDF: DataFrame = spark.createDataFrame(RowRDD,structTable)利用反射机制推断Schema代码流程
val PersonRDD: RDD[Person] = ttRDD.map(z=>Person(z(0).toInt,z(1),z(2).toInt))
val personDF: DataFrame = PersonRDD.toDF()
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算