前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spark运行standalone集群模式

Spark运行standalone集群模式

作者头像
栗筝i
发布2022-12-01 21:21:23
4680
发布2022-12-01 21:21:23
举报
文章被收录于专栏:迁移内容迁移内容

spark的集群主要有三种运行模式standalone、yarn、mesos,其中常被使用的是standalone和yarn,本文了解一下什么是standalone运行模式,并尝试搭建一个standalone集群

1
1

一、standalone模式

standalone模式,是spark自己实现的,它是一个资源调度框架。这里我们要关注这个框架的三个节点:

  1. client
  2. master
  3. worker

spark应用程序有一个Driver驱动,Driver可以运行在Client上也可以运行在master上。如果你使用spark-shell去提交job的话它会是运行在master上的,如果你使用spark-submit或者IDEA开发工具方式运行,那么它是运行在Client上的。这样我们知道了,Client的主体作用就是运行Driver。而master除了资源调度的作用还可以运行Driver。

再关注master和worker节点,standalone是一个主从模式,master节点负责资源管理,worker节点负责任务的执行。

standalone的是spark默认的运行模式,它的运行流程主要就是把程序代码解析成dag结构,并再细分到各个task提交给executor线程池去并行计算

二、运行流程

了解standalone主要节点之后,我们看一下它的运行流程,如图:

img
img

1)当spark集群启动以后,worker节点会有一个心跳机制和master保持通信;

2)SparkContext连接到master以后会向master申请资源,而master会根据worker心跳来分配worker的资源,并启动worker的executor进程;

3)SparkContext将程序代码解析成dag结构,并提交给DagScheduler;

4)dag会在DagScheduler中分解成很多stage,每个stage包含着多个task;

5)stage会被提交给TaskScheduler,而TaskScheduler会将task分配到worker,提交给executor进程,executor进程会创建线程池去执行task,并且向SparkContext报告执行情况,直到task完成;

6)所有task完成以后,SparkContext向Master注销并释放资源;

三、standalone集群搭建

3.0、准备条件
机器(默认配置好了主机名、映射和免密登录)

hostname

系统版本

master

CentOS7.6

slave1

CentOS7.6

slave2

CentOS7.6

3.1、sbin/spark-config.sh

在spark-config.sh文件中配置JAVAHOME

  1. vi spark-config.sh
  2. 添加内容export JAVA_HOME=/usr/local/apps/java/jdk1.8
3.2、conf/spark-env.sh
  1. cp spark-env.sh.template spark-env.sh
  2. vi spark-env.sh
  3. 添加以下内容
代码语言:javascript
复制
export JAVA_HOME=/usr/local/apps/java/jdk1.8
export SCALA_HOME=/usr/local/apps/scala/scala-2.12.2
export SPARK_MASTER_HOST=master
export SPARK_WORKER_MEMORY=25g
export SPARK_WORKER_CORES=34
export SPARK_LOCAL_IP=127.0.0.1
export SPARK_MASTER_PORT=7077
export SPARK_LOCAL_IP=master

其中SPARK_LOCAL_IP要配置为当前主机的hostname

3.3、conf/slaves
  1. cp slaves.template slaves
  2. 添加作为worker的机器地址
代码语言:javascript
复制
slave1
slave2
3.4、启动 Spark 集群
代码语言:javascript
复制
$ sbin/start-all.sh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fmreEthG-1609913096682)(image/image3.png)]

3.5、jps查看

使用jps命令查看进程master下会有maser进程,slave下会有worker进程

3.6、在Web端查看Spark集群情况
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGCNlCEM-1609913096683)(image/image4.png)]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、standalone模式
  • 二、运行流程
  • 三、standalone集群搭建
    • 3.0、准备条件
      • 3.1、sbin/spark-config.sh
        • 3.2、conf/spark-env.sh
          • 3.3、conf/slaves
            • 3.4、启动 Spark 集群
              • 3.5、jps查看
                • 3.6、在Web端查看Spark集群情况
                  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YGCNlCEM-1609913096683)(image/image4.png)]
                  相关产品与服务
                  GPU 云服务器
                  GPU 云服务器(Cloud GPU Service,GPU)是提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,作为 IaaS 层的尖兵利器,服务于深度学习训练、科学计算、图形图像处理、视频编解码等场景。腾讯云随时提供触手可得的算力,有效缓解您的计算压力,提升业务效率与竞争力。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档