一图总结Hadoop、Hive和Spark的关系
Hadoop主要由两部分组成,分布式存储(HDFS)和分布式计算(MapReduce)。Hive使用类SQL语言,底层经过编译转为MapReduce程序,在Hadoop上运行,数据存储在HDFS上。Spark 将大数据集合抽象成一个 RDD 对象,然后提供了 transformation(转换)、action(动作)两大类算子函数,对RDD进行处理,并得到一个新的 RDD,然后继续后续迭代计算,
目录
四、Spark(hadoop第一代引擎MapReduce的升级版本)
五、总结图
一、单机数据系统
一台服务器,数据存储在本地,通过SQL对数据进行操作。
二、Hadoop
Hadoop主要由两部分组成,分布式存储(HDFS)和分布式计算(MapReduce)
(一)、HDFS 的两个关键组件:
1、NameNode
负责分布式文件系统的元数据(MetaData)管理,如:文件路径名、数据块的 ID 以及存储位置等信息,相当于操作系统中文件分配表(FAT)的角色
2、DataNode
负责文件数据的存储和读写操作,HDFS 将文件数据分割成若干数据块(Block),每个 DataNode 存储一部分数据块,从而将一个大文件分割存储在整个 HDFS 集群中
(二)、MapReduce:分布式计算框架
分别在不同的服务器上并行的执如一复杂的计算任务,单台服务器无法胜任时,可将此大任务切分成一个个小的任务,最终再汇总每个小任务的结果。即MapReduce由两个阶段组成:Map阶段(切分成一个个小的任务)、Reduce阶段(汇总小任务的结果)。
计算过程:
-
首先,将输入的内容分到不同的block
-
将每个block的内容转换为 < key , Value > 健值对
-
将相同的 key 集中在一起,形成 < key,List<value> >
-
最后,将 List<value> 进行归约合并,输出零或多个 < key , Value >
三、Hive(SQL on Hadoop)
Hive不支持更改数据的操作,Hive基于数据仓库,提供静态数据的动态查询。其使用类SQL语言,底层经过编译转为MapReduce程序,在Hadoop上运行,数据存储在HDFS上。
四、Spark(hadoop第一代引擎MapReduce的升级版本)
Spark 将大数据集合抽象成一个 RDD 对象,然后提供了 transformation(转换
)、action(动作)两大类算子函数,对RDD进行处理,并得到一个新的 RDD,然后继续后续迭代计算,像 Stream 流一样依次执行,直到任务结束。内部也是采用分片处理,每个分片都会分配一个执行线程。
五、总结
更多推荐
所有评论(0)