1.2 集群部署模式
部署(运行)模式概述
表格 15 spark 部署模式比较表
Local 本地 | Standalone 独立 | Hadoop YARN | Apache Mesos | |
---|---|---|---|---|
简介 | spark 自带的简单集群管理器。 | Hadoop 2 的资源管理器。 | 一个通用的集群普通管理器。 | |
部署 | vi spark-env.sh export SPARK_MASTER_IP export JAVA_HOME | step1: 同 local step2: conf/slaves 上添加节点 hostname step3:将前 2 步的配置文件发送到所有 worker 节点 step4:配置无密码登陆 | 类似 Standalone 模式。 | |
启动 | ./bin/spark-shell | ./sbin/start-master.sh | ||
运行 | ./bin/spark-submit --master local[x] | |||
master | master | ResourceManager | ||
worker | slave 文件配置的 Worker 节点 | NoteManager 节点 | ||
任务调度器 | TaskScheduler | YarnClientClusterScheduler、YarnClusterScheduler | ||
WEBUI |
备注:1. 进入 SPARK 的安装目录。
- 集群部署模式为 Local 以外的三种。集群部署需要在/etc/hosts 添加 hostname 对应的 IP,配置 JAVA_HOME/SPARK_HOME 到~/.profile 并激活脚本。
standby 模式
图 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 端上的。
图 14 standalone 独立集群运行模式的工作流程
工作流程如下:
SparkContext 连接到 Master,向 Master 注册并申请资源(CPU Core 和 Memory)
Master 根据 SparkContext 的资源申请要求和 Worker 心跳周期内报告的信息决定在哪个 Worker 上分配资源,然后在该 Worker 上获取资源,然后启动 StandaloneExecutorBackend;
StandaloneExecutorBackend 向 SparkContext 注册;
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 执行;
StandaloneExecutorBackend 会建立 Executor 线程池,开始执行 Task,并向 SparkContext 报告,直至 Task 完成
所有 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论