Spark是什么呢?
Spark是一款为快速处理大数据通用计算引擎;负责读取数据,完成分布式计算;弥补了Hadoop的在分布式运算慢的缺点;Hadoop的缺陷:无论是Mapreduce或YARN都是先从磁盘中加载数据到内存,当进行运算时,又需要将数据加载到hdfs的临时文件,这样多的步骤导致Hadoop在运算中表现的有点慢,因此Spark应运而生。
spark的优点:
1.内存分布式计算:运行数度快;
2.可以使用不同的语言编程<JAVA, PYTHON...>;
3.可以从不同的数据源获取数据<HDFS, HBASE…>;
4. 实现不同的大数据功能:Spark Core,Sparc SQL …
值得注意的是,Spark可以独立于Hadoop,但是目前还不能完全取代Hadoop,Hadoop依然很重要;
SparkContext:负责申请资源<CPU, 内存>
ClusterManager: 类似于Hadoop 的ResourceManager负责管理分配任务的所有资源;
Worker Node : 任务节点,属于ClusterManager的直接下属;
Executor: 负责准备好Task执行环境和执行Task;
Task: 具体任务;
Driver:管理Task的产生并将要求发送给Exceutor;
整个流程:
1 甲方来了个项目,创建了SparkContext,SparkContext去找ClusterManager申请资源同时给出报价,需要多少CPU和内存等资源。ClusterManager去找WorkerNode并启动Excutor,并介绍Excutor给Driver认识。
2 Driver根据施工图拆分一批批的Task,将Task送给Executor去执行。
3 Executor接收到Task后准备Task运行时依赖并执行,并将执行结果返回给Driver
4 Driver会根据返回回来的Task状态不断的指挥下一步工作,直到所有Task执行结束。
参考:https://blog.csdn.net/yejingtao703/article/details/79438572
各位看客,如果发现有何描述不准确的,定要指出哦,相互学习,个人博客https://www.onexing.cn