Hadoop是Apache下的一个项目,由HDFS、MapReduce、Hive和ZooKeeper等成员组成,其中核心是MapReduce和HDFS,我们平常所说的Hadoop也大部分值得是这两个东西。
HDFS是一个采用Master/Slave模式的高度容错的分布式文件系统,DataNode节点用于存储数据,NameNode节点维护集群内的元数据,Map负责对数据进行打散,Reduce负责对数据进行聚合,核心步骤为:首先将计算机任务拆分成若干个Map任务,然后分配到不同的节点上执行,每一个Map任务处理数据中的一部分,完成后生产的的中间结果,保存在磁盘中,Reduce将前面的若干个Map的输出汇总到一起输出。
Spark的核心在于RDD,可以理解为包含许多操作接口的数据集合,主要有Transformation(lazy)和action两类算子
spark根据RDD之间的依赖关系切分成不同的阶段stage,RDD之间的转换的思想是 lazy的,也就是说不是实际发生的,而是以有向无环图的方式记录,通过一个Action算子,将积累的所有算子一次性执行。
除此之后,基于内存的Spark和基于磁盘的Hadoop也是一个区别。
网友评论