1、Hadoop是由分布式文件系统HDFS和分布式计算框架MapReduce组成的分布式系统基础架构,HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
处理流程:由编程模型和运行时环境两部分组成,基本编程模型是将问题抽象成Map和educe两个阶段,其中Map阶段将输入数据解析成key/value,迭代调用map()函数处理后,再以key/value的形式输出到本地目录,而Reduce阶段则将key相同的value进行规约处理,并将最终结果写到HDFS上。它的运行时环境由两类服务组成:JobTracker和TaskTracker,其中,JobTracker负责资源管理和所有作业的控制,而TaskTracker负责接收来自JobTracker的命令并执行它。
2、改进:针对Hadoop 1.0中的MapReduce在扩展性和多框架支持方面的不足,提出了全新的资源管理框架YARN,它将JobTracker中的资源管理和作业控制功能分开,分别由组件ResourceManager和ApplicationMaster实现,其中,ResourceManager负责所有应用程序的资源分配,而ApplicationMaster仅负责管理一个应用程序。
简而言之,MRv1是一个独立的离线计算框架,而MRv2则是运行于YARN之上的MRv1(HDFS没变,只是MR改变了)。
3、Hadoop一般用于处理离线数据,对实时数据处理的支持不够,所以提出了Spark-基于内存的迭代计算框架(类似于MR),用于迭代次数比较多的场景,如机器学习算法等。
4、spark的数据存储核心是RDD(弹性分布式数据集)
Driver:分配任务
Manager:管理和分配资源
worker:节点,负责监控自己节点的内存和CPU等状况,并向Master汇报。
Executor:执行任务
应用:
MapReduce-On-YARN:YARN上的离线计算;
Spark-On-YARN:YARN上的内存计算;