我想知道是否可以从其他服务提交,监控和终止 spark应用程序.
我的要求如下:
我写了一个服务
spark-submit
from 将应用程序连同参数一起提交给Spark ClusterProcessBuilder
其他要求需要:
我在spark独立文档中找到的建议使用以下命令终止应用程序:
./bin/spark-class org.apache.spark.deploy.Client kill <master url> <driver ID>
Run Code Online (Sandbox Code Playgroud)
而且应该 find the driver ID through the standalone Master web UI at http://<master url>:8080.
那么,我该怎么办?
相关的SO问题:
Spark应用程序完成回调
从Java中的另一个应用程序部署Apache Spark应用程序,最佳实践
您可以使用Shell脚本执行此操作。
部署脚本:
#!/bin/bash
spark-submit --class "xx.xx.xx" \
--deploy-mode cluster \
--supervise \
--executor-memory 6G hdfs:///spark-stat.jar > output 2>&1
cat output
Run Code Online (Sandbox Code Playgroud)
您将获得如下输出:
16/06/23 08:37:21 INFO rest.RestSubmissionClient: Submitting a request to launch an application in spark://node-1:6066.
16/06/23 08:37:22 INFO rest.RestSubmissionClient: Submission successfully created as driver-20160623083722-0026. Polling submission state...
16/06/23 08:37:22 INFO rest.RestSubmissionClient: Submitting a request for the status of submission driver-20160623083722-0026 in spark://node-1:6066.
16/06/23 08:37:22 INFO rest.RestSubmissionClient: State of driver driver-20160623083722-0026 is now RUNNING.
16/06/23 08:37:22 INFO rest.RestSubmissionClient: Driver is running on worker worker-20160621162532-192.168.1.200-7078 at 192.168.1.200:7078.
16/06/23 08:37:22 INFO rest.RestSubmissionClient: Server responded with CreateSubmissionResponse:
{
"action" : "CreateSubmissionResponse",
"message" : "Driver successfully submitted as driver-20160623083722-0026",
"serverSparkVersion" : "1.6.0",
"submissionId" : "driver-20160623083722-0026",
"success" : true
}
Run Code Online (Sandbox Code Playgroud)
基于此,创建您的kill驱动程序脚本
#!/bin/bash
driverid=`cat output | grep submissionId | grep -Po 'driver-\d+-\d+'`
spark-submit --master spark://node-1:6066 --kill $driverid
Run Code Online (Sandbox Code Playgroud)
确保通过使用给定的脚本执行权限 chmod +x
小智 5
杀死 Spark 应用程序的“肮脏”技巧是杀死名为 SparkSubmit 的 jps。主要问题是该应用程序将被“杀死”,但在火花主日志中它会显示为“已完成”......
user@user:~$ jps
20894 Jps
20704 SparkSubmit
user@user:~$ kill 20704
Run Code Online (Sandbox Code Playgroud)
老实说,我不喜欢这个解决方案,但现在是我知道杀死应用程序的唯一方法。
归档时间: |
|
查看次数: |
11343 次 |
最近记录: |