什么是Spark中的纱线客户端模式?

 亲眼耳闻目睹42 发布于 2023-02-07 22:39

Apache Spark最近将版本更新为0.8.1,在该yarn-client模式下可用.我的问题是,纱线客户端模式究竟意味着什么?在文档中它说:

使用yarn-client模式,该应用程序将在本地启动.就像在Local/Mesos/Standalone模式下运行应用程序或spark-shell一样.启动方法也与它们类似,只需确保在需要指定主URL时,使用"yarn-client"代替

"本地推出"是什么意思?在哪里?在Spark集群上?
与纱线独立模式有什么区别?

5 个回答
  • Spark应用程序由一个驱动程序和一个或多个执行程序组成.驱动程序是主程序(实例化的地方SparkContext),它协调执行程序以运行Spark应用程序.执行程序运行驱动程序分配的任务.

    YARN应用程序具有以下角色:yarn客户端,yarn应用程序主服务器和在节点管理器上运行的容器列表.

    当Spark应用程序在YARN上运行时,它有自己的yarn client和yarn application master实现.

    在这些背景下,主要区别在于驱动程序运行的位置.

      纱线独立模式:您的驱动程序作为纱线应用程序主机的线程运行,纱线应用程序主机本身在群集中的一个节点管理器上运行.Yarn客户端只从应用程序主机中提取状态.此模式与mapreduce作业相同,MR应用程序主机协调容器以运行map/reduce任务.

      纱线客户端模式:您的驱动程序正在纱线客户端上运行,您可以在其中键入提交火花应用程序的命令(可能不是纱线群集中的机器).在此模式下,尽管驱动程序在客户端计算机上运行,​​但任务仍在YARN群集的节点管理器中的执行程序上执行.

    参考:http://spark.incubator.apache.org/docs/latest/cluster-overview.html

    2023-02-07 22:46 回答
  • 使用yarn-client模式,您的spark应用程序在本地计算机上运行.使用纱线独立模式,您的火花应用程序将作为纱线ApplicationMaster提交给YARN的ResourceManager,并且您的应用程序正在运行ApplicationMaster的纱线节点中运行.在这两种情况下,纱线都是火花的集群经理.您的应用程序(SparkContext)将任务发送到yarn.

    2023-02-07 22:47 回答
  • 火花和纱线都是分布式框架,但它们的作用是不同的:

    Yarn是一个资源管理框架,对于每个应用程序,它具有以下角色:

    ApplicationMaster:单个应用程序的资源管理,包括从应用程序和监视器的Yarn请求/释放资源.

    尝试:尝试只是一个正常的过程,它完成了应用程序整个工作的一部分.例如,mapreduce作业由多个映射器和缩减器组成,每个映射器和reducer都是一个尝试.

    将应用程序应用于纱线的常见过程是:

      客户向纱线提交申请请求.在请求中,Yarn应该知道ApplicationMaster类; 对于SparkApplication, org.apache.spark.deploy.yarn.ApplicationMaster对于MapReduce作业来说,它是org.apache.hadoop.mapreduce.v2.app.MRAppMaster.

      Yarn为ApplicationMaster进程分配一些资源,并在其中一个集群节点中启动ApplicationMaster进程;

      ApplicationMaster启动后,ApplicationMaster将从Yarn为此应用程序请求资源并启动worker;

    对于Spark,分布式计算框架,计算任务分为许多小任务,每个Executor将负责每个任务,Driver将收集所有Executor任务的结果并获得全局结果.spark应用程序只有一个带有多个执行程序的驱动程序.

    那么,当Spark使用Yarn作为集群中的资源管理工具时,问题就出现了:

    在纱线群集模式中,Spark客户端将向纱线提交火花应用,Spark Driver和Spark Executor都在纱线的监督下.从纱线的角度来看,Spark Driver和Spark Executor没有区别,但是普通的java进程,即应用程序工作进程.因此,当客户端进程消失时,例如客户端进程被终止或终止,纱线上的Spark应用程序仍在运行.

    在纱线客户端模式下,只有Spark Executor处于
    纱线监督之下.Yarn ApplicationMaster将仅为spark执行器请求资源.驱动程序在客户端进程中运行,与纱线无关,只是将应用程序提交给yarn的过程.因此,当客户端离开时,例如客户端
    进程退出,驱动程序关闭,计算终止.

    2023-02-07 22:48 回答
  • 运行的Spark应用程序

    纱线客户模式:

      驱动程序在启动了应用程序的客户端计算机或本地计算机上运行.

      资源分配由YARN资源管理器根据数据节点上的数据位置完成,本地机器的驱动程序将控制spark集群(节点管理器)上的执行程序.

    有关详细信息,请参阅此cloudera 文章.

    独立模式和纱线部署模式之间的区别,

      资源优化在独立模式下效率不高.

      在独立模式下,驱动程序在集群的每个节点中启动执行程序,而不管数据位置如何.

      standalone适用于用例,其中只执行spark应用程序,并且集群不需要以有效的方式为其他作业分配资源.

    在此输入图像描述

    2023-02-07 22:48 回答
  • 所以在火花中你有两个不同的组件.有司机和工人.在纱线群集模式下,驱动程序在数据节点上远程运行,并且工作程序在不同的数据节点上运行.在纱线客户端模式下,驱动程序位于启动作业的计算机上,而工作程序位于数据节点上.在本地模式下,驱动程序和工作人员在启动作业的计算机上.

    运行.collect()时,来自工作节点的数据将被拉入驱动程序.它基本上是最后一点处理发生的地方.

    对于我自己,我发现当我在家中使用vpn时,纱线群集模式会更好,但是当我在数据中心内运行代码时,纱线客户端模式会更好.

    Yarn-client模式还意味着您为驱动程序少占用一个工作节点.

    2023-02-07 22:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有