ExecutorBackend的异常处理
来源:互联网 发布:淘宝主页全屏轮播 编辑:程序博客网 时间:2024/06/06 08:24
5.3.4 ExecutorBackend的异常处理
CoarseGrainedExecutorBackend在运行中出现异常,将调用exitExecutor方法进行处理,处理以后系统退出。exitExecutor这个函数可以由其他子类重载来处理,executor执行的退出方式不同。例如:当executor挂掉了,后台程序可能不会让父进程也挂掉。如果需通知Driver,Driver将清理挂掉的executor的数据。
CoarseGrainedExecutorBackend的exitExecutor方法源码:
1. protected def exitExecutor(code: Int,
2. reason: String,
3. throwable:Throwable = null,
4. notifyDriver:Boolean = true) = {
5. val message = "Executorself-exiting due to : " + reason
6. if (throwable != null) {
7. logError(message, throwable)
8. } else {
9. logError(message)
10. }
11.
12. if (notifyDriver &&driver.nonEmpty) {
13. driver.get.ask[Boolean](
14. RemoveExecutor(executorId,new ExecutorLossReason(reason))
15. ).onFailure { case e =>
16. logWarning(s"Unableto notify the driver due to " + e.getMessage, e)
17. }(ThreadUtils.sameThread)
18. }
19.
20. System.exit(code)
21. }
22. }
CoarseGrainedExecutorBackend在运行中可能出现的异常情况,将调用exitExecutor方法处理:
l Executor向Driver注册RegisterExecutor失败。
l Executor收到Driver的RegisteredExecutor注册成功消息以后,创建Executor实例失败。
l Driver返回Executor注册失败消息RegisterExecutorFailed。
l Executor收到Driver的LaunchTask启动任务消息,但是executor为null。
l Executor收到Driver的KillTask消息,但是executor为null。
l Executor和Driver失去连接。
- ExecutorBackend的异常处理
- C++ 异常处理:类的异常处理--异常处理类
- C++ 异常处理:类的异常处理
- C#的异常处理
- 异常处理的常见问题
- Java异常的处理
- 异常处理的技巧
- java的异常处理
- 异常的处理
- 统一的处理异常
- ruby的异常处理
- InvocationHandler 的异常处理
- java的异常处理
- ARM的异常处理
- JNI异常的处理
- oracle的异常处理
- java的异常处理
- 异常处理的问题
- java AWT监听器之简单计算模型
- 软件工程(C编码实践篇) -- 课程总结
- 求区间最大子段和(线段树)
- fork源码简析
- 数字转换成人民币大写格式(带界面)
- ExecutorBackend的异常处理
- 13.Activity的LaunchMode(四种)启动模式
- linux驱动调试之printk的原理
- Haroopad语法小结-----markdown编辑器推荐
- 管道
- POJ 2104 K-th Number 笔记
- 异步 同步
- React Native调用系统的应用:电话、短信、邮件、浏览器等
- VMware 10/11安装步骤