1. 什么是Spark
Spark是一款基于内存计算的开源分布式计算框架,支持批处理、流处理和机器学习等各种计算模式。
它可以在Hadoop集群中运行,也可以独立运行。
2. 主要角色
Spark Driver:负责Spark应用程序的调度和协调,管理各个Spark任务的执行。
Spark Executor:负责在集群中执行Spark任务,包括数据的加载、转换和持久化等操作。
Spark Cluster Manager:负责管理Spark集群的资源,如内存、CPU等。
3. 涉及到的角色及其功能
Spark Driver:负责Spark应用程序的调度和协调,管理各个Spark任务的执行。
它的主要功能包括:
1.读取Spark应用程序的代码,将其转换为Spark任务并进行调度。
2.分配任务给Spark Executor,并监控任务的执行情况。
3.与Spark Cluster Manager进行通信,获取集群资源的使用情况。
Spark Executor:负责在集群中执行Spark任务,包括数据的加载、转换和持久化等操作。
它的主要功能包括:
1.执行Spark任务,并将结果返回给Spark Driver。
2.加载和管理数据,包括数据的转换和持久化等操作。
Spark Cluster Manager:负责管理Spark集群的资源,如内存、CPU等。
它的主要功能包括:
1.分配集群资源给Spark应用程序,包括内存、CPU等。
2.监控集群资源的使用情况,以确保资源的合理分配。
4. 角色之间的最佳通讯方式
Spark Driver和Spark Executor之间的通信通过RPC协议实现,而Spark Driver和Spark Cluster Manager之间的通信则通过REST API实现。
5. 需要监控的指标
Spark应用程序的执行情况:监控Spark应用程序的启动和关闭时间、任务的执行时间和成功率等指标。
集群资源的使用情况: