分享

用spark-submit 提交任务之后,怎么监测任务的运行状态呢,运行了百分比和最后是否...

ltne 2018-7-27 17:39:57 发表于 方案探讨 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 3 20879
用spark-submit 提交任务之后,怎么监测任务的运行状态呢,运行了百分比和最后是否运行成功,在spark-submit提交之后会出现一些日志,是从这些日志里面吗?
         client token: N/A
         diagnostics: N/A
         ApplicationMaster host:
         ApplicationMaster RPC port: 0
         queue: default
         start time: 1532681880536
         final status: UNDEFINED
         tracking URL: http://master:8088/proxy/application_1527477360688_0014/
         user: hadoop
这个是日志一部分,里面有final status 代表运行状态,但是有的时候这个信息就出来一次,也不知道最后是运行成功还是失败了?
大家有什么方法可以监测运行是否成功吗,web监测页面那个除外,最好是可以用代码获取的。

已有(3)人评论

跳转到指定楼层
s060403072 发表于 2018-7-27 19:36:04
推荐两个:
1.使用jvisualvm
可以使用jvisualvm来监控Spark应用程序(Application),从而可以看到Spark应用程序堆,线程的使用情况
 1、在$SPARK_HOME/conf目录下配置spark-default.conf文件,加入如下配置:
spark.driver.extraJavaOptions   -Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
jmx默认的是1099端口


2、启动Spark应用程序
3、打开jvisualvm.exe监控你的Spark应用程序
  在JDK安装的bin目录下有个jvisualvm.exe,双击它,然后进行配置,依次选择 文件-> 添加JMX连接,然后会弹出一个对话框,在连接文本框里面填上你Driver机器的地址和端口,比如:ip地址:1099。然后就可以看到监控画面
2.spark自己也有提供的可配置信息
master:Spark管理进程applications:位于master的组件,统计发送各种应用的信息worker:Spark工作进程executor:执行器driver:Spark驱动程序每一个实例可以向多个渠道发送统计信息。
更多如下:
Spark基于Coda Hale Metrics库提供一个可配置的统计系统。
这允许用户向不同的终端发送统计信息,包括HTTP、JMX和CSV文件。
统计系统可以通过配置文件来进行配置,Spark默认将配置文件保存在SPARKHOME/conf/mertics.conf。
用户可以通过Javapropertyspark.metrics.conf来修改配置文件的保存路径。
Spark根据组件的不同将统计信息分为多个实例。
可以配置每一个实例向多个方向发送统计信息。
目前支持下面几种实例:master:Spark管理进程applications:位于master的组件,统计发送各种应用的信息worker:Spark工作进程executor:执行器driver:Spark驱动程序每一个实例可以向多个渠道发送统计信息。
渠道包含在包org.apache.spark.metrics.sink:ConsoleSink:将统计信息发送到控制台CSVSink:每隔一段时间将统计信息写入到CSV文件GangliaSink:将统计信息发送到Ganglia或者多播组JmxSink:将统计信息注册到JMX控制台MetricsServlet:在SparkUI中添加servlet用来以JSON的方式提供统计信息统计信息配置文件的语法有一个示例文件——SPARKHOME/conf/mertics.conf。用户可以通过Javapropertyspark.metrics.conf来修改配置文件的保存路径。
Spark根据组件的不同将统计信息分为多个实例。可以配置每一个实例向多个方向发送统计信息。
目前支持下面几种实例:master:Spark管理进程applications:位于master的组件,统计发送各种应用的信息worker:Spark工作进程executor:执行器driver:Spark驱动程序每一个实例可以向多个渠道发送统计信息。渠道包含在包org.apache.spark.metrics.sink:ConsoleSink:将统计信息发送到控制台CSVSink:每隔一段时间将统计信息写入到CSV文件GangliaSink:将统计信息发送到Ganglia或者多播组JmxSink:将统计信息注册到JMX控制台MetricsServlet:在SparkUI中添加servlet用来以JSON的方式提供统计信息统计信息配置文件的语法有一个示例文件——SPARK_HOME/conf/metrics.conf.template.

回复

使用道具 举报

634320089 发表于 2018-7-31 13:55:47
本帖最后由 634320089 于 2018-7-31 13:58 编辑

观察8088那个web页面,可以通过拼接url获取xml信息(主要用到applicationid,提交完任务可以拿到),用程序解析一下,几秒钟调用一次,就可以实现观察运行百分比了,其实就相当于是一个小爬虫程序
回复

使用道具 举报

ltne 发表于 2018-8-3 16:42:27
嗯嗯,谢谢两位的回答
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条