Hadoop “回顾”
文章目录
Hadoop “回顾”
Hadoop 分布式基础架构
-
mapReduce 处理大数据分析
-
HDFS 存储分布式节点的文件
-
Hive 转换数据库表 提供SQL
并非数据库,只是转换为数据库表
在其转换为数据库表后,使用MapReduce进行数据分析
-
Hbase NoSQL类型的数据库,支持随机读写
-
yarn 资源管理器
Spark简介
目标知识点 | 记忆 | 理解 | 应用 | 分析 | 评价 | 创新 |
---|---|---|---|---|---|---|
Spark 计算模型 | O | |||||
Spark 与 MapReduce | O | O | ||||
Spark 生态系统 | O | O | ||||
Spark 应用案例 | O |
1.1 概念
- Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎,基于MapReduce开发,由于数据读取基于内存而非磁盘,从而不需要读写HDFS,所以速度会高于MapReduce的,更适用于机器学习和数据挖掘等需要迭代的MapReduce的算法(迭代会导致反复读写)
- Spark是使用Scala语言实现的,这是一种面向对象,函数式编程语言,能够像操作本地集合对象一样轻松的操作分布式数据集,并提供一个全名的Actor的并行模型
- Spark可以运行于Hadoop集群中,可以使用多种数据源
1.2 Spark的特点
-
运行速度块
拥有DAG( Directed Acyclic Graph 有向无环图)执行引擎,比hadoop的MapReduce内存运算快100倍,硬盘运算快10倍以上
-
易用性好
-
通用性强
Spark生态圈BDAS包含了丰富的组件,提供一站式解决平台
-
随处运行
具有很强的适应性,可以使用多种资源管理器来调度Job,可以访问多种数据源
1.3 DAG有向无环图
Spark的计算模型
2.1.1 计算模型
基于Spark的程序,包含了一个Driver Programi和集群中多个Executor。由Cluster Manager将执行单元Task送到Executor.上执行,每个Job会被拆成多组Task,每组任务称为Stage。Spark的基本计算单元是RDD。
2.1.2 运行架构
2.1.3 计算引擎
2.2 Spark的基本计算单元
RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升查询速度。
弹性分布式数据集(RDD)是spak最基本的编程抽象,而且是只读,可分区的,可以进行并行计算的对象。
数据集:
- 是一个数据集合,用于存放数据的。RDD是一个数据容器,用来组织管理数据的。跟Ary和List类似,并且都能够进行map、flatMap、filter等操作。
分布式:
- RDD中的数据是分布式存储的,可用于分布式计算,RDD的数据是分布存储的,也就是Spak集群中每个节点上只存储了RDD的部分数据,计算同样也是分布式并行计算的。
弹性:
-
存储的弹性:RDD的数据可以在内存和磁盘之间进行自由切换。
-
可靠性的弹性:RDD的在丢失数据时能够自动恢复,RDD在计算过程中会出现失败的情况,失败以后会进行一定次数的重试(4次)。
-
并行度的弹性:RDD的数据分区可以改变,进而增加并行计算的粒度。
依赖关系
RDD之间有两种不同类型的依赖关系:窄依赖和宽依赖。