Spark入门(二)运行模式及安装部署

本文详细介绍了Spark的安装部署,涵盖了Local模式、Standalone集群模式以及Yarn模式。从资源准备开始,逐步讲解了各个模式的安装、配置、启动流程,包括Master和Worker的角色,以及Driver和Executor的功能。还提到了Spark在Yarn模式下的运行模式选择和历史服务配置,最后进行了模式对比和总结。
摘要由CSDN通过智能技术生成

上一节对Spark进行大致的介绍,包括其历史、特点以及各内置模块等方面内容,书归正题,本节就对Spark框架的安装部署进行大致的介绍。

部署Spark集群大体上分为两种模式:单机模式与集群模式。大多数分布式框架都支持单机模式,方便开发者调试框架的运行环境,但是在生产环境中,并不会使用单机模式。因此,后续会直接按照集群模式部署Spark集群。

Spark目前支持 4 种运行模式:

  • 1)Local模式:在本地部署单个Spark服务(适用于测试)
  • 2)Standalone模式:并非是单节点,而是使用Spark自带的资源调度框架(国内常用)
  • 3)YARN模式:Spark使用Hadoop的YARN组件进行资源与任务调度(国内常用)
  • 4)Mesos模式:Spark使用Mesos平台进行资源与任务的调度

资源准备

关于Spark安装,有以下资源地址可供使用:

  • 1)官网地址:http://spark.apache.org/
  • 2)文档查看地址:https://spark.apache.org/docs/2.1.1/
  • 3)下载地址:https://spark.apache.org/downloads.html

1.Spark Local模式

Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。

1)安装

安装步骤比较简单:下载Spark安装文件到Linux(版本:spark-2.1.1-bin-hadoop2.7.tgz——Spark 2.1.1版,并且需要Hadoop2.7及以上的版本支持)、解压安装包到指定文件夹、并重命名为spark-local:

tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
mv spark-2.1.1-bin-hadoop2.7 spark-local

这里为了对三种运行模式有所区分,每个安装文件对应的名称不同。

2)官方求PI案例

[zxy@hadoop102 spark-local]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master local[2] \
./examples/jars/spark-examples_2.11-2.1.1.jar \
10

参数说明:

  • 1)- -class:表示要执行程序的主类;
  • 2)- -master local[2]:本地运行模式,指定使用2个Core来运行计算
  • 3)spark-examples_2.11-2.1.1.jar:要运行的程序;
  • 4)10:要运行程序的输入参数(本案例中表示计算圆周率π的次数,计算次数越多,准确率越高);

3)关于local本地运行模式

本地运行模式参数--master local

  • 1)local: 没有指定线程数,则所有计算都运行在一个线程当中,没有任何并行计算
  • 2)local[K]:指定使用K个Core来运行计算,比如local[2]就是运行2个Core来执行
  • 3)local[*]: 自动帮你按照CPU最多核来设置线程数。比如CPU有4核,Spark帮你自动设置4个线程计算。

登录hadoop102:4040,查看可以程序运行情况(注意:spark-shell窗口关闭掉,则hadoop102:4040页面关闭)

在这里插入图片描述

说明:本地模式下,默认的调度器为FIFO


Spark集群角色的介绍

首先介绍一下Spark集群中的角色,先对集群整体有一些认识,然后我们再去介绍集群模式的安装部署与使用。

1)Master和Worker

Master和Worker是Spark特有资源调度系统中的角色,类似于Yarn框架中的ResourceManager和NodeManager。
在这里插入图片描述
Master,Spark特有资源调度系统的Leader。掌管着整个集群的资源信息,类似于Yarn框架中的ResourceManager, 主要功能:

  • 1)监听Worker, 看Worker是否正常工作; .
  • 2)对Worker、Application等的管理(接收Worker的注册并管理所有的Worker,接收Client提交的Application,调度等待的Application并向Worker提交)

Worker,Spark特有资源调度系统的Slave,有多个。每个Slave掌管着所在节点的资源信息,类似于Yarn框架中的NodeManager,主要功能:

  • 1)通过RegisterWorker 注册到 Master;
  • 2)定时发送心跳给Master;
  • 3)根据Master发送的Application配置进程环境,并启动ExecutorBackend (执行Task所需的临时进程)

2)Driver和Executor

在这里插入图片描述

3)Spark 通用运行流程

Master和Worker是Spark的守护进程,即Spark在特定模式下正常运行所必须的进程。

Driver和Executor是临时程序,当有具体任务提交到Spark集群才会开启的程序。

2.Standalone模式

Standalone模式是Spark自带的资源调动引擎,构建一个由Master + Slave构成的Spark集群,Spark运行在集群中。

这个要和Hadoop中的Standalone区别开来。这里的Standalone是指只用Spark来搭建一个集群,不需要借助其他的框架,是相对于Yarn和Mesos来说的。

1.安装使用

1)集群规划

假设有三台服务器hadoop102、103、104,Standalone模式下的Spark集群规划如下:

hadoop102 hadoop103 hadoop104
spark Master
Worker
Worker Worker

2)解压安装

[zxy@hadoop102 ~]$ tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
[zxy@hadoop102 module]$ mv spark-2.1.1-bin-hadoop2.7 spark-Standalone

这里为了对三种运行模式有所区分,每个安装文件对应的名称不同。

3)修改配置文件:slaves/spark-env.sh

配置内容主要是设置Master和Worker

安装目录下的conf文件夹,主要配置以下内容:

  • 1)slaves.template 改为 slaves:配置worker节点
  • 2)spark-env.sh.template 改为 spark-env.sh:添加master节点及端口号
[zxy@hadoop102 conf]$ mv slaves.template slaves
[zxy@hadoop102 conf]$ vim slaves
hadoop102
hadoop103
hadoop104
[zxy@hadoop102 conf]$ mv spark-env.sh.template spark-env.sh
[zxy@hadoop102 conf]$ vim spark-env.sh
# 添加以下内容
SPARK_MASTER_HOST=hadoop102
SPARK_MASTER_PORT=7077

注意:剩余两台节点也需要进行同样配置,可以直接将安装文件夹分发到hadoop103和104

4)启动Spark集群:sbin/start-all.sh

[zxy@hadoop102 spark-standalone]$ sbin/start-all.sh

可以通过jps命令查看每台节点下的对应的Spark进程。

注意:

  • 如果遇到 “JAVA_HOME not set” 异常,可以在sbin目录下的spark-config.sh 文件中加入如下配置:
  • export JAVA_HOME=XXXX

5)Web端口查看执行任务

官方求PI案例:

  • 参数:--master spark://hadoop102:7077 指定要连接的集群的master,其
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值