Spark On Yarn基本原理及部署

文章目录

    • Spark On Yarn基本原理
    • Spark On Yarn架构图
    • Spark On Yarn部署及测试

Spark On Yarn基本原理

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

Spark On Yarn架构图

Spark On Yarn基本原理及部署_第1张图片

  • 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
  • pyspark连接到Yarn中,使用以下命令:
# --deploy-mode 选项是指定部署模式, 默认是 客户端模式
# client就是客户端模式
# cluster就是集群模式
# --deploy-mode 仅可以用在YARN模式下
bin/pyspark --master yarn --deploy-mode client|cluster

Spark On Yarn基本原理及部署_第2张图片
我们可以在Yarn资源管理界面中查看这个任务,输入http://node1:8088
Spark On Yarn基本原理及部署_第3张图片

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

Spark On Yarn基本原理及部署_第4张图片

  • 如何查看子任务
    输入node1:4040或点击如下图所示即可进入任务界面
    Spark On Yarn基本原理及部署_第5张图片
    Spark On Yarn基本原理及部署_第6张图片
    退出pyspark之后yarn程序状态显示FINISHED
    Spark On Yarn基本原理及部署_第7张图片

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

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

在这里插入图片描述
Spark On Yarn基本原理及部署_第8张图片

你可能感兴趣的:(Spark,spark,大数据,hadoop)