集群规模:
Active Nodes: 2(172.24.5.101、172.24.5.102)
VCores Total: 14
Memory Tota:30GB
测试步骤
1: 启动spark streaming job
待程序稳定运行后可以看到如下所示
Executor ID Address Status
driver 172.24.5.101:35917 Active
1 172.24.5.102:35917 Active
2:关闭 172.24.5.101 node manager
首先对应的节点状态 DEAD,但是该executor依然接收Batch,并且处于queued
Executor ID Address Status
driver 172.24.5.101:35917 Active
1 172.24.5.102:35917 DEAD
3:启动 172.24.5.101 node manager
待节点恢复后,executors 分布状况如下:
Executor ID Address Status
driver 172.24.5.101:35917 Active
1 172.24.5.102:35917 DEAD
2 172.24.5.102:45917 Active
可以看到executor重新分配;处于 queued 中的Batch 也已经正确处理;截图如下:
Executors
Issue
Q1: 当一台node manager 挂掉, executor 并未在存活的data node重新启动,而是在该节点恢复后,executor才恢复,这是为何?
重新测试,下线其他streaming job, 重复上述操作发现 executor 可以分布在其他存活的node manager上,截图如下:
当时有可能集群资源有限, 没有合适的 node manager 接受 executor,接下来会重复验证
Q2:当所有 node manager 挂掉, executor是怎样恢复?
网友评论