• Spark On Yarn基本原理及部署


    Spark On Yarn基本原理

    • 对于企业来说,如果在已有的Yarn群集的前提下单独准备Spark Standalone群集,本身对资源的利用率就不会很高,所以在很多企业的应用场景下,Spark一般会运行到Yarn的群集中。
    • YARN本身是一个资源调度框架,负责对运行在内部的计算框架进行资源调度管理,作为典型的计算框架,Spark本身可以直接运行在YARN中,并接受YARN调度。所以无需部署Spark集群,只需要找一台服务器,充当Spark的客户端,就可可提交任务到YARN集群。

    Spark On Yarn架构图

    在这里插入图片描述

    • YARN中的ResourceManager代替Spark中的Master角色。
    • YARN中的NodeManager代替Spark中的Worker角色。
    • Drvier角色运行在Yarn容器内或提交任务的客户端进程中。
    • Executor运行在Yarn提供的容器内。

    Spark On Yarn部署及测试

    • 部署方式与之前相同,需要注意点,确保spark-env,sh这个脚本中必须添加HADOOP_CONF_DIR与YARN_CONF_DIR两个环境变量:
      #具体环境变量根据自己系统来设定
      HADOOP_CONF_DIR=/export/server/hadoop-3.3.0/etc/hadoop
      YARN_CONF_DIR=/export/server/hadoop-3.3.0/etc/hadoop
    
    • 1
    • 2
    • 3
    • pyspark连接到Yarn中,使用以下命令:
    # --deploy-mode 选项是指定部署模式, 默认是 客户端模式
    # client就是客户端模式
    # cluster就是集群模式
    # --deploy-mode 仅可以用在YARN模式下
    bin/pyspark --master yarn --deploy-mode client|cluster
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    我们可以在Yarn资源管理界面中查看这个任务,输入http://node1:8088
    在这里插入图片描述

    • 验证测试以下
      sc.parallelize([1,2,3,4,5]).map(lambda x: 2*x+1).collect()
    
    • 1

    在这里插入图片描述

    • 如何查看子任务
      输入node1:4040或点击如下图所示即可进入任务界面
      在这里插入图片描述
      在这里插入图片描述
      退出pyspark之后yarn程序状态显示FINISHED
      在这里插入图片描述

    • spark-submit提交到Yarn中,使用以下命令:

      bin/spark-submit --master yarn /export/server/spark-3.2.0/examples/src/main/python/pi.py 100
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    防抖 节流
    iCloud涨价不用慌!学会使用群晖生态将本地SSD“上云”
    分析Java中 CharSequence源码
    【全国数据】中国乡镇级矢量面状数据(shp)
    Vue 的最大的优势是什么?
    虚拟现实环境下的远程教育和智能评估系统(五)
    数据分析---matplotlib2
    Java并发进阶之:关于计算机的一些知识
    代理服务器squid使用
    迁移人大金仓问题汇总
  • 原文地址:https://blog.csdn.net/sinat_31854967/article/details/127727650