前面简单的介绍了Spark的一些概念还有Spark生态圈的一些情况,这里主要是介绍Spark运行模式与Spark Standalone模式的部署;
Spark运行模式在Spark中存在着多种运行模式,可使用本地模式运行、可使用伪分布式模式运行、使用分布式模式也存在多种模式如:Spark Mesos模式、Spark YARN模式;
Spark Mesos模式:官方推荐模式,通用集群管理,有两种调度模式:粗粒度模式(Coarse-grained Mode)与细粒度模式(Fine-grained Mode);
Spark YARN模式:Hadoop YARN资源管理模式;
Standalone模式: 简单模式或称独立模式,可以单独部署到一个集群中,无依赖任何其他资源管理系统。不使用其他调度工具时会存在单点故障,使用Zookeeper等可以解决;
Local模式:本地模式,可以启动本地一个线程来运行job,可以启动N个线程或者使用系统所有核运行job;
Standalone模式需要将Spark复制到集群中的每个节点,然后分别启动每个节点即可;Spark Standalone模式的集群由Master与Worker节点组成,程序通过与Master节点交互申请资源,Worker节点启动Executor运行;
这里使用了两节点部署Spark集群:192.168.2.131、192.168.2.133,下面简称为:133与131节点;其中133节点既是Master节点同时又是Worker节点,131节点为Worker节点;
节点结构图
部署步骤:
一、首先在133节点上下载Java、Scala与Spark并解压到/usr/local目录下,这里使用的Spark是带有Hadoop的版本;
下载解压到local
二、配置Java、Scala与Spark环境变量,这里把环境变量配置到/etc/profile文件中,请忽略Hadoop环境变量;
环境变量配置
三、测试Java、Scala是否配置成功,在终端输入:java -version与scala -version
四、配置Spark环境变量,进入Spark目录下的conf目录把slaves.template重命名为slaves,接着把spark-env.sh.template重命名为:spark-env.sh;
重命名
修改spark-env.sh文件,添加环境变量;
spark-env修改
五、在133节点使用scp把下载好的Java、Scala、Spark发送到131节点,并在131节点上重复以上所有步骤;
六、在两个节点都完成以上所有步骤后开始启动Spark,133节点既是Master又是Worker;
1、首先在133启动Spark,进入Spark目录的sbin目录执行./start-all.sh:
Master启动
使用jps命令发现存在Master与Worker进程,说明Spark已启动成功;
2、启动131节点的Spark,进入Spark目录的sbin目录执行:./start-slave.sh spark://192.168.2.133:7077
start-slave.sh后面的地址为Master节点的通信地址,指定当前slave节点连接到的Master;
slave启动:
使用jps命令,存在Worker进程则说明当前的Spark Worker节点启动成功;
七、 Spark Web页面
可以通过:8080/ 地址查看到当前Spark集群的信息,这地址为Master节点的地址;
SparkWeb: