大数据生态与spark简介
一、大数据的四个特点
- Volume:数据量大,包括采集、存储和计算的量都非常大。
- Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据。
- Value:数据价值密度相对较低,随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低。
- Velocity:数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。
二、spark简介
spark是基于内存计算的大数据并行计算框架,可用于构建大型的,低延迟的数据分析应用程序。
三、spark的特点
1. 运行速度快。
2. 易用性强。
3. 通用性强。
4. 运行模式多样。
四、大数据技术包括
Hadoop,spark., Flink,Beam;Flink目前速度最快
Map Reduce将复杂的运行于大规模集群上的并行计算过程高度的抽象到了两个函数
map和reduce将来可能被spark取代。
五、Hadoop与spark的区别
Hadoop存在缺点,表达能力有限,磁盘IO开销大,延迟高,任务之间的衔接涉及IO开销,在前一个任务执行完成之前,其他任务就无法开始,难以胜任复杂、多阶段的计算任务相比于Hadoop MapReduce,Spark主要具有如下优点:
1.Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce更灵活。
2.Spark提供了内存计算,可将中间结果放到内存中,对于迭代运算效率更高。
3.Spark基于DAG的任务调度执行机制,要优于Hadoop MapReduce的迭代执行机制。
六、spark运行架构
RDD:是Resillient Distributed Dataset(弹性分布式数据集)的简称,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。
DAG:是Directed Acyclic Graph(有向无环图)的简称,反映RDD之间的依赖关系。
Executor:是运行在工作节点(WorkerNode)的一个进程,负责运行Task。
应用(Application):用户编写的Spark应用程序。
任务( Task ):运行在Executor上的工作单元。
作业( Job ):一个作业包含多个RDD及作用于相应RDD上的各种操作。
阶段( Stage ):是作业的基本调度单位,一个作业会分为多组任务,每组任务被称为阶段,或者也被称为任务集合,代表了一组关联的、相互之间没有Shuffle依赖关系的任务组成的任务集。