在执行Spark应用程序的时候,driver会提供一个webUI给出应用程序的执行信息。可是该webUI随着应用程序的完毕而关闭port,也就是说,Spark应用程序执行完后,将无法查看应用程序的历史记录。Spark history server就是为了应对这样的情况而产生的。通过配置,Spark应用程序在执行完应用程序之后,将应用程序的执行信息写入指定文件夹。而Spark
history server能够将这些执行信息装载并以web的方式供用户浏览。

      要使用history server,对于提交应用程序的client须要配置下面參数(在conf/spark-defaults.conf中配置):
  • spark.eventLog.enabled   是否记录Spark事件,用于应用程序在完毕后重构webUI。
  • spark.eventLog.dir   假设spark.eventLog.enabled为 true,该属性为记录spark事件的根文件夹。在此根文件夹中,Spark为每一个应用程序创建分文件夹。并将应用程序的事件记录到在此文件夹中。

    用户能够将此属性设置为HDFS文件夹,以便history server读取历史记录文件。

  • spark.yarn.historyServer.address    Spark history server的地址(不要加http://)。这个地址会在Spark应用程序完毕后提交给YARN RM,然后RM将信息从RM UI写到history server UI上。

      而对于history server的服务端,能够配置下面环境变量:
  • SPARK_DAEMON_MEMORY   分配给history server的内存大小,默认512m。
  • SPARK_DAEMON_JAVA_OPTS   history server的JVM选择。默觉得空。

  • SPARK_PUBLIC_DNS   history server的公网地址,假设不设置,能够用内网地址来訪问。

    默觉得空。

  • SPARK_HISTORY_OPTS   history server的属性设置。属性如以下所看到的。默觉得空。
 属性名称  默认  含义
 spark.history.updateInterval  10 以秒为单位。多长时间history server显示的信息进行更新。

每次更新都会检查持久层事件日志的不论什么变化。

 spark.history.retainedApplications  250 在history server上显示的最大应用程序数量,假设超过这个值,旧的应用程序信息将被删除。
 spark.history.ui.port  18080 history server的默认訪问port
 spark.history.kerberos.enabled  false 是否使用kerberos方式登录訪问history server,对于持久层位于安全集群的HDFS上是实用的。

假设设置为true,就要配置以下的两个属性。

 spark.history.kerberos.principal  空 用于history server的kerberos主体名称
 spark.history.kerberos.keytab  空 用于history server的kerberos keytab文件位置
 spark.history.ui.acls.enable  false 授权用户查看应用程序信息的时候是否检查acl。假设启用,不管应用程序的spark.ui.acls.enable怎么设置。都要进行授权检查,仅仅有应用程序全部者和spark.ui.view.acls指定的用户能够查看应用程序信息;假设禁用,不做不论什么检查。

2:实验环境
实验环境參见Spark1.0.0 开发环境高速搭建 。

实验代码參见使用IntelliJ IDEA开发Spark1.0.0应用程序 的SparkPi和 Spark1.0.0源码/examples/src/main/python/pi.py (在文件结尾添加了一句sc.stop()) 。

3:实验
A:实验计划

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYm9va19tbWlja3k=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

B:集群配置并启动history server
虚拟机群:
[root@hadoop1 ~]# su - hadoop
[hadoop@hadoop1 ~]$ cd /app/hadoop/hadoop220
[hadoop@hadoop1 hadoop220]$ sbin/start-dfs.sh
[hadoop@hadoop1 hadoop220]$ bin/hdfs dfs -mkdir /sparklogs
[hadoop@hadoop1 hadoop220]$ sbin/start-yarn.sh
[hadoop@hadoop1 hadoop220]$ cd ../spark100/conf
[hadoop@hadoop1 conf]$ cp spark-defaults.conf.template spark-defaults.conf
[hadoop@hadoop1 conf]$ vi spark-defaults.conf
[hadoop@hadoop1 conf]$ cat spark-defaults.conf
spark.eventLog.enabled  true
spark.eventLog.dir hdfs://hadoop1:8000/sparklogs
spark.yarn.historyServer.address hadoop1:18080

[hadoop@hadoop1 conf]$ cd ..

[hadoop@hadoop1 spark100]$ sbin/start-all.sh
[hadoop@hadoop1 spark100]$ sbin/start-history-server.sh hdfs://hadoop1:8000/sparklogs

C:client配置
mmicky@wyy:~$ su - hadoop
hadoop@wyy:~$ cd /app/hadoop/spark100
hadoop@wyy:/app/hadoop/spark100$ cd conf
hadoop@wyy:/app/hadoop/spark100/conf$ cp spark-defaults.conf.template spark-defaults.conf
hadoop@wyy:/app/hadoop/spark100/conf$ vi spark-defaults.conf
hadoop@wyy:/app/hadoop/spark100/conf$ cat spark-defaults.conf
spark.eventLog.enabled  true
spark.eventLog.dir hdfs://hadoop1:8000/sparklogs
spark.yarn.historyServer.address hadoop1:18080

hadoop@wyy:/app/hadoop/spark100/conf$ cd ..


D:client提交scala程序
hadoop@wyy:/app/hadoop/spark100$ ./bin/spark-submit --master local[*] --class week2.SparkPi --executor-memory 2g --driver-memory 1g week2.jar
hadoop@wyy:/app/hadoop/spark100$ ./bin/spark-submit --master spark://hadoop1:7077 --class week2.SparkPi --executor-memory 2g --driver-memory 1g week2.jar
hadoop@wyy:/app/hadoop/spark100$ ./bin/spark-submit --master yarn-client --class week2.SparkPi --executor-memory 2g --driver-memory 1g week2.jar
hadoop@wyy:/app/hadoop/spark100$ ./bin/spark-submit --master yarn-cluster --class week2.SparkPi --executor-memory 2g --driver-memory 1g week2.jar

E:虚拟机群提交python程序
[hadoop@hadoop1 spark100]$ ./bin/spark-submit --master local[*] --executor-memory 2g --driver-memory 1g pi.py
[hadoop@hadoop1 spark100]$ ./bin/spark-submit --master spark://hadoop1:7077 --executor-memory 2g --driver-memory 1g pi.py
[hadoop@hadoop1 spark100]$ ./bin/spark-submit --master yarn-client --executor-memory 2g --driver-memory 1g pi.py
[hadoop@hadoop1 spark100]$ ./bin/spark-submit --master yarn-cluster--executor-memory 2g --driver-memory 1g pi.py

F:检查history server工作情况
用浏览器打开hadoop1:18080

点随意应用程序,能够查看应用程序执行信息:


4:TIPS
  • driver在SparkContext使用stop()方法后才将完整的信息提交到指定的文件夹,假设不使用stop()方法,即使在指定文件夹中产生该应用程序的文件夹,history server也将不会载入该应用程序的执行信息。所以假设直接使用Spark1.0.0源码/examples/src/main/python/pi.py。就无法显示其应用程序,在最后加上一行sc.stop()后,就能够显示。
  • history server增强版代码能够參看https://github.com/apache/spark/pull/718/files#r13398770


Spark1.0.0 history server 配置的更多相关文章

  1. Spark History Server配置使用

    Spark history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEB ...

  2. Spark history Server配置实用

    Spark history Server产生背景 以standalone运行模式为例,在运行Spark Application的时候,Spark会提供一个WEBUI列出应用程序的运行时信息:但该WEB ...

  3. Spark1.0.0 开发环境高速搭建

          在本系列博客中.为了解析一些概念.解析一些架构.代码測试.搭建了一个实验平台.例如以下图所看到的:       本实验平台是在一台物理机上搭建的.物理机的配置是16G内存,4核8线程CPU ...

  4. Spark1.0.0 监测方法

          Spark1.0.0能够通过下面几种方式来对Spark应用程序进行监控: Spark应用程序的WebUI或者Spark Standalone的集群监控 指标,然后通过支持指标收集的集群监控 ...

  5. Spark1.0.0 学习路径

          2014-05-30 Spark1.0.0 Relaease 经过11次RC后最终公布.尽管还有不少bug,还是非常令人振奋. 作为一个骨灰级的老IT,经过非常成一段时间的消沉,再次被点燃 ...

  6. Spark1.0.0 学习路线指导

    转自:http://www.aboutyun.com/thread-8421-1-1.html 问题导读1.什么是spark?2.spark编程模型是什么?3.spark运维需要具有什么知识?4.sp ...

  7. Spark1.0.0 属性配置

    1:Spark1.0.0属性配置方式       Spark属性提供了大部分应用程序的控制项,而且能够单独为每一个应用程序进行配置.       在Spark1.0.0提供了3种方式的属性配置: Sp ...

  8. Spark1.0.0属性配置

    1:Spark1.0.0属性配置方式 Spark属性提供了大部分应用程序的控制项,并且可以单独为每个应用程序进行配置. 在Spark1.0.0提供了3种方式的属性配置: SparkConf方式 Spa ...

  9. 最新版spark1.1.0集群安装配置

    和分布式文件系统和NoSQL数据库相比而言,spark集群的安装配置还算是比较简单的: 很多教程提到要安装java和scala,但我发现spark最新版本是包含scala的,JRE采用linux内嵌的 ...

随机推荐

  1. 9. Spark Streaming技术内幕 : Receiver在Driver的精妙实现全生命周期彻底研究和思考

        原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/)       Spark streaming 程序需要不断接收新数据,然后进行业务逻辑 ...

  2. 洛谷P1129 [ZJOI2007] 矩阵游戏

    题目传送门 分析:看到这题呢,首先想到的就是搜索,数据范围也不大嘛.但是仔细思考发现这题用搜索很难做,看了大佬们的题解后学到了,这一类题目要用二分图匹配来做.可以知道,如果想要的话,每一个子都可以移动 ...

  3. 在CentOS6或RHEL6恢复上ext4文件系统误删除的文件

    首先说明: [root@CentOS6 ~]# rm -rf / //这条命令不可以执行 [root@CentOS6 ~]# rm -rf /* //这条命令可以执行,别去试 ext4文件系统上误删除 ...

  4. gwy常识

    其实公务员考试是一门艺术,七分靠水平,三分凭发挥,充分而又细致的准备则是取得优秀成绩的前提.考生若想在笔试中成功上岸,还需苦练内功,凭技巧和真才实学在考场上一较高下.那么针对历年上海公务员考试笔试考情 ...

  5. 【BZOJ 4104】【THUSC 2015】解密运算

    http://www.lydsy.com/JudgeOnline/problem.php?id=4104 网上题解满天飞,我也懒得写了 #include<cstdio> #include& ...

  6. luogu P1016 旅行家的预算

    题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...

  7. 【数论】【中国剩余定理】poj1006 生理周期

    CRT用于求解一元线性同余方程组(模数互质),实际上模数不互质我们也可以解决,在之前的某篇文章里提过.如下 http://www.cnblogs.com/autsky-jadek/p/6596010. ...

  8. 【最小割】BZOJ3438-小M的作物(Rank 2???!!!)(含新款Dinic模板)

    一开始被T掉了之后,才害怕地发现之前写的Dinic基本上都是错的??!!!正确的写在注释里了,注意一下(;3<)馬鹿やろ 一个丧心病狂的优化前后效率对比:

  9. 【深度搜索+剪枝】POJ1011-Sticks

    深搜部分和之前的POJ2362差不多,只是有几处需要额外的剪枝. [思路]排序后从最短木棒开始搜索至木棒长总和,如果木棒长总和sum能整除当前棒长,则进入深搜. [剪枝]先前POJ2362的剪枝部分不 ...

  10. Run-Time Check Failure #0

    Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is ...