大数据分析与内存计算笔记 您所在的位置:网站首页 spark能够显著提升大数据计算的性能原因是 大数据分析与内存计算笔记

大数据分析与内存计算笔记

2024-06-30 21:24| 来源: 网络整理| 查看: 265

大数据特点:

数据量大

数据类型繁多

处理速度快

价值密度低,商业价值高

大数据关键技术:

 两大核心技术:分布式处理和分布式存储

大数据关键技术  =  大数据计算模式

 代表性关键技术: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 2018-2019 实验室设备网 版权所有