zoukankan      html  css  js  c++  java
  • Spark1.0.0 history server 配置

          在执行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:实验环境
    实验代码參见使用IntelliJ IDEA开发Spark1.0.0应用程序 的SparkPi和 Spark1.0.0源码/examples/src/main/python/pi.py (在文件结尾添加了一句sc.stop()) 。

    3:实验
    A:实验计划

     
    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 


  • 相关阅读:
    http://www.rehack.cn/techshare/webbe/php/3391.html
    SQL 百万级数据提高查询速度的方法
    开学收好这 17 种工具 App,让你新学期学习更有效率
    Git文件常见下标符号说明
    JS模块化开发
    前端路由的实现方式
    单页应用和多页应用
    使用chrome远程调试设备及调试模拟器设备
    移动端实现弹出框渐显和渐隐效果
    前端实现手机相册或照相预览图片及压缩图片的方法
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7286185.html
Copyright © 2011-2022 走看看