返回介绍

1.2 集群部署模式

发布于 2024-09-23 22:13:01 字数 3448 浏览 0 评论 0 收藏 0

部署(运行)模式概述

表格 15 spark 部署模式比较表

 Local 本地Standalone 独立Hadoop YARNApache Mesos
简介 spark 自带的简单集群管理器。Hadoop 2 的资源管理器。一个通用的集群普通管理器。
部署vi spark-env.sh export SPARK_MASTER_IP export JAVA_HOMEstep1: 同 local step2: conf/slaves 上添加节点 hostname step3:将前 2 步的配置文件发送到所有 worker 节点 step4:配置无密码登陆类似 Standalone 模式。 
启动./bin/spark-shell./sbin/start-master.sh  
运行./bin/spark-submit --master local[x]   
master masterResourceManager 
worker slave 文件配置的 Worker 节点NoteManager 节点 
任务调度器 TaskSchedulerYarnClientClusterScheduler、YarnClusterScheduler 
WEBUI    

备注:1. 进入 SPARK 的安装目录。

  1. 集群部署模式为 Local 以外的三种。集群部署需要在/etc/hosts 添加 hostname 对应的 IP,配置 JAVA_HOME/SPARK_HOME 到~/.profile 并激活脚本。

standby 模式

image-20191205205523021

图 13 standalone 独立集群运行模式

说明:该模式主要的节点有 Client 节点、Master 节点和 Worker 节点。其中 Driver 既可以运行在 Master 节点上中,也可以运行 在本地 Client 端。当用 spark-shell 交互式工具提交 Spark 的 Job 时,Driver 在 Master 节点上运行;当使用 spark- submit 工具提交 Job 或者在 Eclips、IDEA 等开发平台上使用”new SparkConf.setManager(“spark://master:7077”)”方式运行 Spark 任务时,Driver 是运行在本地 Client 端上的。

image-20191205205537913

图 14 standalone 独立集群运行模式的工作流程

工作流程如下:

  1. SparkContext 连接到 Master,向 Master 注册并申请资源(CPU Core 和 Memory)

  2. Master 根据 SparkContext 的资源申请要求和 Worker 心跳周期内报告的信息决定在哪个 Worker 上分配资源,然后在该 Worker 上获取资源,然后启动 StandaloneExecutorBackend;

  3. StandaloneExecutorBackend 向 SparkContext 注册;

  4. SparkContext 将 Applicaiton 代码发送给 StandaloneExecutorBackend;并且 SparkContext 解析 Applicaiton 代码,构建 DAG 图,并提交给 DAG Scheduler 分解成 Stage(当碰到 Action 操作时,就会催生 Job;每个 Job 中含有 1 个或多个 Stage,Stage 一般在获取外部数据 和 shuffle 之前产生),然后以 Stage(或者称为 TaskSet)提交给 Task Scheduler,Task Scheduler 负责将 Task 分配到相应的 Worker,最后提交给 StandaloneExecutorBackend 执行;

  5. StandaloneExecutorBackend 会建立 Executor 线程池,开始执行 Task,并向 SparkContext 报告,直至 Task 完成

  6. 所有 Task 完成后,SparkContext 向 Master 注销,释放资源。

YARN

Spark on YARN 模式根据 Driver 在集群中的位置分为两种模式:一种是 YARN-Client 模式,另一种是 YARN-Cluster(或称为 YARN-Standalone 模式)。

Yarn-Client 模式中,Driver 在客户端本地运行,这种模式可以使得 Spark Application 和客户端进行交互,因为 Driver 在客户端,所以可以通过 webUI 访问 Driver 的状态,默认是 http://hadoop1:4040 访问,而 YARN 通过 http:// hadoop1:8088 访问

本章参考

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文