Spark hIstory and Spark on yarn 配置及使用

  • sprk on yarn 概述及使用

    (0)spark 资源管理                                                                                                                                        G3-平头哥  

         Spark支持Yarn,Mesos,Standalone三种集群部署模式,它们的共同点:Master服务(Yarn ResourceManager,Mesos master,Spark standalone)来决定哪些应用可以运行以及在哪什么时候运行,Slave服务(Yarn NodeManger)运行在每个节点上,节点上实际运行着Executor进程,此外还监控着它们的运行状态以及资源的消耗

    (1)spark on yarn 模式

             用过hadoop的都知道,YARN是集群的资源管理系统,spark on yarn 就是spark 作业提交到集群上通过yarn 去调度,spark on yarn有两种模式,一种是cluster模式,一种是client模式;通常Yarn-Cluster适用于生产环境,而Yarn-Clientr更适用于交互,调试模式

    (2) 提交作业 参数讲解

    ./bin/spark-submit --class org.apache.spark.examples.SparkPi \        #作业类名
    --master yarn \                       #spark模式
    --deploy-mode cluster \                #spark on yarn 模式
    --driver-memory 4g \                    #每一个driver的内存
    --executor-memory 2g \                    #每一个executor的内存
    --executor-cores 1 \                        #每一个executor占用的core数量
    --queue thequeue \                            #作业执行的队列
    examples/jars/spark-examples*.jar \            #jar包
    10                                               #传入类中所需要的参数

    (3) 简单测试测试(client 和 cluster 模式)                                                                                                                    G3-平头哥

    ./bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master yarn \
    /ruozedata/app/spark-2.3.1-bin-2.6.0-cdh5.7.5/examples/jars/spark-examples_2.11-2.3.1.jar \
    3


    ./bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master yarn-cluster \
    /ruozedata/app/spark-2.3.1-bin-2.6.0-cdh5.7.5/examples/jars/spark-examples_2.11-2.3.1.jar \
    3

   (4)注意的点

        1.它每次提交作业的时候会把本地jar包和conf 文件打成zip 文件上传,这十分耗费资源,故而我们可以将spark jars放在一个              yarn可以访问到的目录中,具体做法如下:
           vi spark-default.cong  添加
           spark.yarn.jars  hdfs://hostname:8020/sparkjar/*
           保存生效,并将所有的spark jars上传至hdfs://hostname:9000/sparkjar/即可

         2.在cluster mode 模式下,spark 驱动程序和客户端在不同的机器上运行,所以SparkContext.addJar 无法使用客户端本地               文件,用 --jars 指定jar包

         3.关于yarn 的日志问题: 应用程序运行完之后,yarn-site.xml 里面配置 yarn.log-aggregation-enable=true (日志聚合)完后,             会把日志从本地上传到hdfs,从本地删除,用 yarn logs -applicationId <app ID> 来查看日志

     (5) yarn 两种模式的区别                                                     G3-平头哥

         "宏观": driver 运行在客户端是 client 模式,driver 运行在application Master 中是 cluster 模式(面试题)
         "微观" :client 和 cluster 区别:
                  1.运行在客户端,diver要和exector 通信频繁,网络请求太大;cluster 模式driver运行在AM里面的话,AM运行在                             nodemanager 的 container 里面,它可能分散在不同节点上,现在属于在集群内部,网络通信请求自然就少很多了
                   2.driver 运行在本地,进程不能停,因为它要和exector 通信;另一种的话,当driver 提交完应用程序就可以退出了,                       不需要一直启动
                   3.client 模式看日志在客户端可以看;cluster 模式则运行看不到日志

       (6)  sc.stop()   不管在哪里跑任务,如果不停,任务都会在incomplete页面里面,所以必须停,切记!!!!

  • Spark-history 配置使用                                                                                   G3-平头哥
  1. spark-defaults.conf配置: 里面添加:(启动日志服务 和 日志所在的hdfs目录)
               spark.eventLog.enabled           true
               spark.eventLog.dir               hdfs://hadoop01.com:8020/directory
  2. spark-env.sh 配置:
       SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop000:8020/directory -Dspark.history.ui.port=7777" (运行历史服务的端口和目录,那个目录不存在需要自己创建)
        spark.history.fs.cleaner.enabled = true        (history-server的日志是否定时清除)
        spark.history.fs.cleaner.interval = 1d        (每一天会检查一下日志文件)
        spark.history.fs.cleaner.maxAge = 7d        (某个日志文件的生命周期为7d时,则会删除该日志文件)
        spark.history.retainedApplications = 50        ([可选] 内存中保存Application历史记录的个数)
        spark.history.fs.update.interval 默认值10秒    (刷新日志的时间,更短的时间可以更快检测到新的任务以及任务执行情况)
  3. start-history-server.sh   打开7777 页面查看近期的任务信息
  • REST API 的使用(最后加一个)

Spark源为了方便用户对任务做监控,从1.4版本启用Rest服务,用户可以通过访问地址,得到application的运行状态。 
    Spark的REST API返回的信息是JSON格式的,开发者们可以很方便地通过这个API来创建可视化的Spark监控工具。目前 这      个API支持正在运行的应用程序,也支持历史服务器。在请求URL都有/api/v1。比如,对于历史服务器来说,我们可以通过           http://:18080/api/v1 来获取一些信息,端口可以改;对于正在运行的Spark应用程序,我们可以通过 https:///api/v1来获取一些       信息。
          主要用途: 通过rest服务,可以轻松对任务时长、stage等做监控,同时可以配合时间序列数据库,对集群各个任务做监控。 

  • 对于spark web UI界面的一些介绍大家可以看一下这个博客:spark wen UI界面介绍看这 里:https://blog.csdn.net/minge_se/article/details/79146737

 

作者不易,转载请注明地址:https://blog.csdn.net/zilianxiaozhu/article/details/82081325

 G3-平头哥 谢谢!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值