赞
踩
大数据特点:
数据量大
数据类型繁多
处理速度快
价值密度低,商业价值高
大数据关键技术:
两大核心技术:分布式处理和分布式存储
大数据关键技术 = 大数据计算模式
代表性关键技术:Hadoop、 Spark 、Flink、 Beam。
Spark具有如下几个主要特点(Spark的设计遵循“一个软件栈满足不同应用场景”的理念):
运行速度快:使用DAG执行引擎以支持循环数据流与内存计算
容易使用:支持使用Scala、Java、Python和R语言进行编程,可以通过Spark Shell进行交互式编程
通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件
运行模式多样:可运行于独立的集群模式中,可运行于Hadoop中,也可运行于Amazon EC2等云环境中,并且可以访问HDFS、Cassandra、HBase、Hive等多种数据源
spark运行 基本概念
RDD:是Resillient Distributed Dataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型
DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系
Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task
应用( Application ):用户编写的Spark应用程序
任务( Task ):运行在Executor上的工作单元
作业(Job):一个Job包含多个RDD及作用于相应RDD上的各种操作
阶段( Stage ):是Job的基本调度单位,一个Job会分为多组Task,每组Task被称为Stage,或者也被称为TaskSet,代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集
RDD 是一种抽象,是 Spark 对于分布式数据集的抽象,它用于囊括所有内存中和磁盘中的分布式数据实体。 (一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算)
一般来说,分布式数据集的容错性有两种方式:即数据检查点和记录数据的更新。由于面向的是大规模数据分析,数据检查点操作成本很高:需要通过数据中心的网络连接在机器之间复制庞大的数据集,而网络带宽往往比内存带宽低得多,同时还需要消耗更多的存储资源(在内存中复制数据可以减少需要缓存的数据量,而存储到磁盘则会拖慢应用程序)。所以选择记录更新的方式。但是,如果更新太多,那么记录更新成本也不低。因此,RDD只支持读操作,并且只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列转换记录下来(即Lineage),以便恢复丢失的分区。
虽然只支持粗粒度转换限制了编程模型,但是RDD仍然可以很好地适用于很多应用,特别是支持数据并行的批量分析应用,包括数据挖掘、机器学习、图算法等,因为这些程序通常都会在很多记录上执行相同的操作。.
RDD特性
Spark采用RDD以后能够实现高效计算的原因主要在于:
(1)高效的容错性
现有容错机制:数据复制或者记录日志
RDD:血缘关系、重新计算丢失分区、无需回滚系统、重算过程在不同节点之间并行、只记录粗粒度的操作
RDD 之间的依赖关系
Shuffle操作 什么是Shuffle操作 MapReduce中的Shuffle操作 Spark中的Shuffle操作
窄依赖和宽依赖 是否包含Shuffle操作是区分窄依赖和宽依赖的根据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。