大数据技术栈常见流程图
2022-09-18 17:10:42 1 举报
包含Hive的执行流程,Spark Hive执行流程,Spark Standalone执行流程
作者其他创作
大纲/内容
container(executor)
client:客户端ResourceManager:管理资源Scheduler:调度器ApplicationsManager:应用程序管理器Node Manager:节点代理Container:容器,Yarn中的动态资源分配,其拥有一定的内存,核数,由RM分配给ApplicationMaster或者MapTask或者ReduceTaskAppMaster:程序控制器,第一个启动的Container,负责和hive进行交互
7
submit job1
5
1
Master
. . .
2
zookeeper
10
Executor
Container
Spark Task
9
ResourceManager
Client
Worker
4
time
Scheduler
StandbyResource Manager
Resouece Manager(RM)
Node Maneger(NM)
. . .
standalone cluster(spark 自带部署)
job2
Client
Yarn HA
Capacity Scheduler
ApplicationsManager
11
job1
submit job2
Yarn HA:Highly available 高可用,Hadoop 2.4.0版本之前,Yarn存在单点故障(即ResourceManager存在单点故障),一旦发生故障,恢复时间较长,且会导致正在运行的Application丢失,影响范围较大Active Resource Manager:运行ResourceManagerStandby Resource Manager:备用ResourceManagerResourceManager:简写RM,作为Yarn系统中的主控节点,负责整个系统的资源管理和调度图执行流程:1、当RM进程启动的时候会向ZK的/rmstore目录写lock文件,写成功就为active,否则standby,节点zkfc会一直监控这个lock文件是否存在,假如不存在,就为active,否则为standby2、RM接收client的请求,接收和监控NM的资源状况的汇报,负责资源的分配和调度。(client通过namespace找rm,如果发现它是standby状态,那么就去用另一个rm)。NM会向active的RM汇报,但是不会向standby的RM汇报zkfc:ZKFailoverController,用于对NameNode状态进行控制
Spark-submit
Job2
Spark:yarn-cluster(适合生产)
8
Node Manager
Applications Manager
6
Yarn 的运作流程
3
HDFS
Driver
Spark:yarn-client模式和cluster模式差不多,不同的是Driver没有在NM上,而是在客户端中
Application Master(AM)
13
12
Zookeeper Cluster
1、Client 向 RM 提交 job 对象申请运行应用程序2、RM 返回job id和运行资源提交地址3、client 向地址提交切片信息 split,配置文件 xml 和 jar 包等运行资源4、应答 RM 资源提交完成,开始调用ASM处理任务5、ASM发送Schduler,由Schduler调度资源,规划6、Schduler向ASM返回处理器信息7、ASM发送消息NM,NM 安排资源给AM 8、AM读取之前存储在HDFS的资源,确定执行的任务9、AM开始向RM申请资源10、RM把任务发给空闲的NM11、AM开始通知NM开始执行任务12、NM通知Container执行任务task13、AM执行完成后发送RM,RM开始回收资源
Spark:yarn-client(适合调试)
FIFO Scheduler
AppMaster
queue B
client
Scheduler :负责分配资源 FIFO Scheduler :YARN的调度策略,应用按照顺序排成序列,按照顺序分配资源,满足后分配下一个,大应用可能占用所有资源,导致被其他应用堵塞
Job1
专业名词说明
queue A
Applications Manager(ASM)
1.spark-submit 提交任务给 Master2.Master 收到任务请求后通过 LaunchDriver 向 Worker 请求启动 Driver3.Worker 收到请求后启动 Driver4.Driver 启动后向 Master 注册Spark应用程序5.Master 收到 App 信息后根据资源的情况向 Worker 发送 launchExecutor 启动 Excutor6.Worker 收到 Master 的请求后启动相应的 Excutor7.Excutor 启动后 Driver 反向注册所有的所有的 Executor注册完成后, Driver 开始执行 main 函数,之后执行到 Action 算子时,开始划分 stage,每个 stage 生成对应的 taskSet,之后将 task 分发到各个 Executor 上执行standalone还有一个client模式,该模式的主要区别是driver在client上,这里不再画出
ActiveResource Manager
Capacity Scheduler:容器调度资源,以队列为单位划分资源,每个队列配置一定量资源,队列中采用FIFO的调度策略,每个队列可设定一定比例的资源最低保证和使用上限
queue default
收藏
0 条评论
下一页