spark history server学习

原文:http://bit1129.iteye.com/blog/2174673
本文包括如下内容:

Spark History Server的作用
配置Spark History Server
运行Spark History Server
查看Spark程序的运行信息
Spark History Server的作用
在 运行Spark应用程序的时候,driver会提供一个webUI用于展现应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口。也就是说,这个服务是伴随Spark应用程序的运行周期的,也就是当应用程序运行完成后,将无法查看应用程序的历史记录。Spark history server就是为了应对这种情况而产生的,通过配置,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览

伴随Spark应用程序而启动的web查看服务的默认端口号是4040,或者4041(如果当前端口被占用,比如4040被占用,那么Spark会抛一个异常,但是不影响应用继续运行,driver会使用这个已用的端口加1,以此类推)

配置Spark History Server
1. 在Spark的conf目录下,将spark-defaults.conf.template改名为spark-defaults.conf
Java代码 收藏代码
mv spark-defaults.conf.template spark-defaults.conf

  1. 对spark-defaults.conf作如下配置

Java代码 收藏代码
///Spark Master的IP/Port
spark.master spark://hadoop.master:7077
///是否记录作业产生的事件或者运行状态(job,stage等使用内存等信息)
spark.eventLog.enabled true
///如果记录作业产生的事件或者运行状态,则将事件写入什么位置
spark.eventLog.dir hdfs://hadoop.master:9000/user/hadoop/sparkevtlog
///http history的监听端口号,通过http://hadoop.master:18080访问
spark.history.ui.port 18080

启动Spark History Server
1, 使用如下命令启动History Server

Java代码 收藏代码
[hadoop@hadoop sbin]$sbin/start-history-server.sh

启动完成后,发现18080并没有监听,到Spark的logs目录下查看history server的启动日志,发现报如下错误:

Java代码 收藏代码
Caused by: java.lang.IllegalArgumentException: Log directory specified does not exist: file:/tmp/spark-events. Did you configure the correct one through spark.fs.history.logDirectory?

  1. 将spark.fs.history.logDirectory配置到conf/spark-defaults.conf目录里,发现并不起作用,

3.查看start-history-server.sh脚本内容,发现这个参数可以作为启动脚本的第一个参数传递:

Java代码 收藏代码
if [ # != 0 ]; then  
  echo “Using command line arguments for setting the log directory is deprecated. Please ”  
  echo “set the spark.history.fs.logDirectory configuration option instead.”  
  export SPARK_HISTORY_OPTS=”
SPARK_HISTORY_OPTS -Dspark.history.fs.logDirectory=$1”
fi
所以使用如下命令启动History Server

Java代码 收藏代码
./start-history-server.sh hdfs://hadoop.master:9000/user/hadoop/sparkhistorylog

查看作业的执行情况
1. 当History第一次启动,从没有作业执行,那么History Server上不显示内容(只提示没有Job信息可供查看)
2. 使用spark-submit提交一个作业,保证SparkContext调用了stop方法,否则History Server不会显示历史信息
3.访问http://hadoop.master:18080得到如下结果

查看作业信息
点击App ID访问http://192.168.26.136:18080/history/app-20150110055201-0002/,可以打开这个Spark程序的执行情况。
可以查看如下信息:
Spark程序启动几个作业
这个Spark程序一个Job包含多少Stages
这个Spark程序一共包含多少个Stages
Stage的详细信息
这个Spark程序是几个Executor执行完成的

  1. 在这个Spark程序启动几个Job

    1. Spark程序一个Job包含多少Stages
  2. Spark程序一共包含多少个Stages

  3. Stage的详细信息

  4. Spark程序是几个Executor执行完成的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值