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

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

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

在这里插入图片描述

  • 如何查看子任务
    输入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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值