zoukankan      html  css  js  c++  java
  • spark的standalone模式下:查看任务结束后的历史记录

    我想说4040端口太坑了,我运行wodcount案例,时间那么短,想去4040里查看任务具体运行情况,根本不可能。spark程序运行完毕后,就再无法通过4040端口看到什么了。今天我们通过修改spark的一些配置文件,使得我们的程序运行结束后,依然能够查看,并且通过WEBUI页面,可以看到一些详细内容,这对于我们的优化也有很大帮助。能够实现这个功能的就是HistoryServer服务。

    1、首先关闭还在启动中的spark服务(如果是关闭状态,直接下一步)

    hadoop@master:/usr/local/spark/spark-2.4.7/sbin$ ./stop-all.sh
    

    2、首先创建spark-defaults.conf配置文件(所有节点都要更改),然后在HDFS文件系统上创建一个文件夹(只在master机器上创建)

    #2.1重命名
    hadoop@master:/usr/local/spark/spark-2.4.7/conf$ mv spark-defaults.conf.template spark-defaults.conf
    hadoop@master:/usr/local/spark/spark-2.4.7/conf$ ll
    total 48
    -rw-r--r-- 1 hadoop hadoop  996 Sep  8 14:47 docker.properties.template
    -rw-r--r-- 1 hadoop hadoop 1105 Sep  8 14:47 fairscheduler.xml.template
    -rw-r--r-- 1 hadoop hadoop 2025 Sep  8 14:47 log4j.properties.template
    -rw-r--r-- 1 hadoop hadoop 7801 Sep  8 14:47 metrics.properties.template
    -rw-r--r-- 1 hadoop hadoop  878 Dec 13 13:38 slaves
    -rw-r--r-- 1 hadoop hadoop  865 Sep  8 14:47 slaves.template
    -rw-r--r-- 1 hadoop hadoop 1292 Sep  8 14:47 spark-defaults.conf
    -rwxr-xr-x 1 hadoop hadoop 5148 Jan 26 09:35 spark-env.sh
    -rwxr-xr-x 1 hadoop hadoop 4221 Sep  8 14:47 spark-env.sh.template
    #2.2在HDFS文件系统上创建一个文件夹
    hadoop@master:/usr/local/spark/spark-2.4.7/conf$ hdfs dfs -mkdir /spark-job-log
    21/01/27 14:04:15 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
    
    

    结果如下图:

    3、在spark-defaults.conf文件中, 添加如下内容:(所有节点都要更改)

    hadoop@master:/usr/local/spark/spark-2.4.7/conf$ vim spark-defaults.conf
    
    spark.eventLog.enabled           true
    spark.eventLog.dir               hdfs://master:9000/spark-job-log
    


    :wq (保存退出)

    4、 修改spark-env.sh文件,添加如下配置(所有节点都要更改)

    hadoop@master:/usr/local/spark/spark-2.4.7/conf$ vim spark-env.sh 
    

    添加下面这句:

    export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://master:9000/spark-job-log"

    参数说明:

    参数描述:

    spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下;

    spark.history.ui.port=18080 WEBUI访问的端口号为18080

    spark.history.fs.logDirectory=hdfs://hadoop002:9000/spark-job-log 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息

    spark.history.retainedApplications=30指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

    4、验证

    #启动spark集群:
    hadoop@master:/usr/local/spark/spark-2.4.7/sbin$ ./start-all.sh
    #启动历史服务
    hadoop@master:/usr/local/spark/spark-2.4.7/sbin$ ./start-history-server.sh 
    starting org.apache.spark.deploy.history.HistoryServer, logging to /usr/local/spark/spark-2.4.7/logs/spark-hadoop-org.apache.spark.deploy.history.HistoryServer-1-master.out
    hadoop@master:/usr/local/spark/spark-2.4.7/sbin$ jps
    4113 HistoryServer
    4003 Master
    1364 SecondaryNameNode
    1142 NameNode
    4158 Jps
    hadoop@master:/usr/local/spark/spark-2.4.7/sbin$ 
    

    master节点jps之后会出现HistoryServer,但是其他slave节点并不会有HistoryServer

    下面开始激动人心的时刻啦!

    登录WEB页面,输入: IP:18080(这里的IP是指你的master机器的公网IP)

    他出来了!!!

    下面我提交一个wordcount案例:

    hadoop@master:/usr/local/spark/spark-2.4.7/bin$ ./spark-submit --master spark://master:7077 --class spark.WordCount --total-executor-cores 6  /home/hadoop/sparkmvn-1.0-SNAPSHOT.jar 
    

    运行成功后,就可以显示出来了。

    点击APP ID,就到了和4040端口页面一样的了。下面愉快的分析,并进行优化。

    参考链接:https://cloud.tencent.com/developer/article/1733763

  • 相关阅读:
    设置数据库某字段为当前时间
    HashMap源码解析(只为吊打面试官)
    SRAM 静态内存芯片 IS62WV51216 的使用 STM32F407ZGT6
    手机ARM种类,STM32中的ARM核又是什么东东?
    运算放大器 常用经典电路 计算书
    SMT 生产线设备 (PCBA)
    横机 电控设计
    ISO26262 标准
    质量管理体系(16949)的五大工具
    IATF16949和TS16949有什么不同?
  • 原文地址:https://www.cnblogs.com/wanpi/p/14335414.html
Copyright © 2011-2022 走看看