Spark原理详解
Hadoop存在缺陷: 基于磁盘,无论是MapReduce还是YARN都是将数据从磁盘中加载出来,经过DAG,然后重新写回到磁盘中 计算过程的中间数据又需要写入到HDFS的临时文件 这些都使得Hadoop在大数据运算上表现太“慢”,Spark应运而生。 Spark的架构设计: ClusterManager负责分配资源,有点像YARN中ResourceManager那个角色,大管家握有所有的干活的资源,属于乙方的总包。 WorkerNode是可以干活的节点,听大管家ClusterManager差遣,是真正有资源干活的主。 Executor是在WorkerNode上起的一个进程,相当于一个包工头,负责准备Task环境和执行Task,负责内存和磁盘的使用。 Task是施工项目里的每一个具体的任务。 Driver是统管Task的产生与发送给Executor的,是甲方的司令员。 SparkContext是与ClusterManager打交道的,负责给钱申请资源的,是甲方的接口人。 整个互动流程是这样的: 1 甲方来了个项目,创建了SparkContext,SparkContext去找ClusterManager申请资源同时给出报价,需要多少CPU和内存等资源。ClusterManager去找WorkerNode并启动Excutor,并介绍Excutor给Driver认识。 2