apache-spark - 如果我让火花驱动器崩溃会发生什么。执行人会说清楚吗?
问题描述
假设我有一个在客户端模式下运行的 spark 驱动程序。如果我命令'kill -9 xxx'并且xxx是驱动程序的进程号,会发生什么?是否会收集分配给驱动程序的执行者和工作人员。如果做了,怎么做?
解决方案
spark-submit 脚本提供了将已编译的 Spark 应用程序提交到集群的最直接的方法。对于独立集群,Spark 目前支持两种部署模式。在客户端模式下,驱动程序与提交应用程序的客户端在同一进程中启动。然而,在集群模式下,驱动程序是从集群内的一个 Worker 进程启动的,并且客户端进程在完成提交应用程序的职责后立即退出,而无需等待应用程序完成。
如果您的应用程序是通过 Spark 提交启动的,那么应用程序 jar 会自动分发到所有工作节点。如果你想杀死一个应用程序,你可以通过:
./bin/spark-class org.apache.spark.deploy.Client kill <master url> <driver ID>
您可以通过 http://:8080 上的独立 Master Web UI 找到驱动程序 ID。
Spark批处理应用状态和驱动程序状态是协调的,通过每个Spark批处理应用进程与Spark master一起通信。如果您在驱动程序处于 RUNNING 状态时直接发出 OS 级别的 kill 命令,应用程序和驱动程序进程将立即终止,而无需与 Spark master 通信。然后应用程序状态为 FINISHED,驱动程序状态为 FAILED。
杀死驱动程序将导致 YARN 在yarn-cluster
模式下重新启动它。您想终止 spark-submit 进程。
推荐阅读
- postgresql - 创建 Amazon RDS 时的 Datadog 警报
- mysql - 从mysql drupal 8中的json获取值
- flutter - 分享失败请仅在 WhatsApp (API23) 中重试
- javascript - 从 jquery 生成一个 simple_form 字段
- python - pandas - 涉及分类分组的最近值查找
- c++ - 如果函数是在类的主体内定义的,是否需要在成员函数的返回类型中指定 typename?
- c# - C# 使用 FileHelpers 将 csv 文件导入 SQL 数据库
- git - 有没有办法将 liferay 门户配置保存为代码存储库的一部分?
- c# - 我将如何将我从 foreach 获得的值(字符串)分配给不同的变量?
- c# - 有没有办法使用 iText7 使第一个字符变成不同的颜色?