Spark集群环境搭建(standalone模式)

简介: Spark集群环境搭建(standalone模式)

1. 实验室名称:

大数据实验教学系统

2. 实验项目名称:

Spark集群环境搭建(standalone模式)

3. 实验学时:

4. 实验原理:

spark有以下几种运行模式,每种运行模式都有自己不同的优点和长处。

name Value
• local(本地模式) 常用于本地开发测试,本地还分为local单线程和local-cluster多线程;
• standalone(集群模式) 典型的Mater/slave模式,Master可能有单点故障的;Spark支持ZooKeeper来实现 HA。
• on yarn(集群模式) 运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算。
• on mesos(集群模式) 运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算。

5. 实验目的:

安装和配置Spark环境(standalone模式)

 掌握Spark集群的启动和关闭。


6. 实验内容:

1、在master主节点上安装和配置Spark环境

 2、将配置好的Spark文件夹拷贝到三个worker节点上

 3、掌握Spark集群的启动和关闭

 4、测试Spark集群安装是否成功。


7. 实验器材(设备、虚拟机名称):

硬件:x86_64 ubuntu 16.04服务器

 软件:JDK1.8,Spark-2.3.2,Hadoop-2.7.3

 在本实验环境中,Spark安装包位于以下位置:/data/software/spark-2.3.2-bin-hadoop2.7.tgz

 在本实验环境中,JDK已安装在以下位置:/opt/jdk

 在本实验环境中,Hadoop已安装在以下位置:/opt/hadoop器


8. 实验步骤:

8.1 验证是否已经正确地安装了JDK

Spark程序运行在JVM之上,因此在安装Spark之前,要确保已经安装了JDK 8,并正确配置了环境变量。

 启动一个终端窗口,键入如下的命令:

1.  $ java -version
2.  $ javac -version

如果在终端窗口中输出了JDK的版本号,说明已经安装好了JDK并正确配置了环境变量。否则,在继续后面的步骤之前,请先安装JDK并配置好环境变量。


8.2 验证是否已经正确地配置了SSH无密码登录

Spark集群要求从主节点到从节点的SSH无密码登录。

 我们这里配置由三台机器组成的Spark集群。三台节点的设置如下:


1.  集群节点    IP地址            主机名
2.  主节点     192.168.0.2    master
3.  从节点1    192.168.0.3    slave1
4.  从节点2    192.168.0.4    slave2

在master节点上启动终端,分别输入以下命令,测试SSH配置:

1.  $ ssh master
2.  $ exit
3.       
4.  $ ssh slave1
5.  $ exit
6.       
7.  $ ssh slave2
8.  $ exit

如果均不需要输入密码即可连接,说明SSH无密登录配置正确,否则,在继续安装之前,请先检查从master到各个slave节点的SSH无密配置。


8.3 在master节点上安装Spark

在本实验环境中,Spark安装包位于以下位置:/data/software/spark-2.3.2-bin-hadoop2.7.tgz

 在本实验环境中,JDK已经安装在了以下位置:/opt/jdk

 请按以下步骤操作(在master节点上):

 1. 将安装包解压缩到/data/bigdata/目录下,并改名为spark-2.3.2。打开终端窗口,执行以下命令:

1.  $ cd /data/bigdata
2.  $ tar xvf /data/software/spark-2.3.2-bin-hadoop2.7.tgz
3.  $ mv spark-2.3.2-bin-hadoop2.7 spark-2.3.2

2. 配置系统环境变量。在终端窗口中,执行以下命令:

1.  $ cd
2.  $ vim /etc/profile

在打开的文件最后,添加如下内容:

1.  export SPARK_HOME=/data/bigdata/spark-2.3.2
2.  export PATH=$SPARK_HOME/bin:$PATH

然后保存文件并关闭。

 2. 执行/etc/profile文件使得配置生效。在终端窗口中,执行以下命令:

1.  $ source /etc/profile

8.4 设置spark运行环境和配置参数

1. 在终端窗口中,执行如下的命令,进入到Spark的conf目录下:

1.  $ cd /data/bigdata/spark-2.3.2/conf

2. 打开spark-env.sh文件配置(默认没有,需拷贝模板文件并改名)。在终端窗口中,执行以下命令:

1.  $ cp spark-env.sh.template spark-env.sh
2.  $ vim spark-env.sh

3. 在打开的spark-env.sh文件中,加入以下内容,并保存:

1.  export JAVA_HOME=/opt/jdk
2.  export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop
3.  export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.7.3/bin/hadoop classpath)

5.5 同步Spark安装和配置

将配置好的spark拷贝到集群中每台机器的/data/bigdata/目录下。在master节点的终端窗口中,执行以下命令:

1.  $ cd /data/bigdata/
2.  $ scp -r spark-2.3.2 root@slave1:/data/bigdata/
3.  $ scp -r spark-2.3.2 root@slave2:/data/bigdata/

5.6 配置slaves

在运行Spark集群时,需要从master远程SSH连接各个worker节点,来启动worker节点上的相应进程。所以需要在master节点的spark的conf/slaves文件中指定worker节点的主机名或IP地址。

 请在master节点上按以下步骤操作:

 1. 在终端窗口中,键入执行以下命令,打开conf/slaves文件进行编辑:(默认没有,需拷贝模板文件并改名)

1.  $ cd /data/bigdata/spark-2.3.2/conf
2.  $ cp slaves.template slaves
3.  $ vim slaves

2. 在slaves文件中去掉localhost,并添加下面机器名(或IP地址),每个节点一行,然后保存:

1.  master
2.  slave1
3.  slave2

8.7 测试spark

如果Spark不使用HDFS和YARN,那么就不用启动Hadoop也可以正常使用Spark。如果在使用Spark的过程中需要用到 HDFS,就要首先启动 Hadoop/HDFS。

 1. 启动spark集群。在master节点的终端窗口下,执行如下命令:

1.  $ cd /data/bigdata/spark-2.3.2
2.  $ ./sbin/start-all.sh

2. 查看启动的进程。在master节点的终端窗口下,执行如下命令:

1.  $ jps

执行以上命令,在终端窗口中应该可以看到如下所示的进程:

42145 Master
42536 Jps
42270 Worker

由以上输出内容可以看出,Master和Worker就是Spark的主进程和工作进程。大家可以用SSH分别连接到worker01节点和worker02节点,使用jps命令查看在这两个节点上启动的worker进程。

 3. 使用Web接口查看:打开浏览器,查看master Web UI: http://master:8080。 可以看到类似下面这样的Web界面:

928fb4de851d49d6b0934b5ec0896386.png


从上图中可以看到显示master url:”URL:spark://master:7077”。 此外应该可以看到新的节点列表在那里,带有其CPU的数量和内存(减掉一个G留给OS)。


8.8 在Spark集群上执行Spark程序

接下来,我们在Spark集群上运行Spark自带的示例程序。在终端窗口中,执行以下命令:

1.  $ cd /data/bigdata/spark-2.3.2
2.  $ ./bin/run-example SparkPi

同时按下Shift+Enter,执行以上代码。执行时会输出很多运行信息,从中可以找到如下的输出结果:

Pi is roughly 3.140675703378517

由以上输出内容可以看出,我们的Spark集群运行正常。


8.9 关闭Spark集群:

最后,我们关闭Spark集群。在终端窗口中,执行以下命令:


1.  $ cd /data/bigdata/spark-2.3.2
2.  $ ./sbin/stop-all.sh
3.  $ jps

可以看到,Spark集群已经正确关闭了。


8.10 小结

为保证集群的稳定,请将各个节点的IP设为静态IP地址。Spark集群要求从master节点到各个worker节点的SSH无密码登录。

 在启动Spark集群时,要先启动master节点,再启动workers节点;在关闭Spark集群时,要先关闭workers节点,再关闭master节点。

 Spark集群的standalone部署模式,不要求启动Hadoop。但是在实际生产环境下,通常使用HDFS来存储海量数据,因此需要Spark读取HDFS上的数据,这时就需要在运行Spark程序之前,先启动Hadoop/HDFS。


9. 实验结果及分析:

实验结果运行准确,无误


10. 实验结论:

经过本节实验的学习,通过学习Spark集群环境搭建(standalone模式),进一步巩固了我们的Spark基础。


11. 总结及心得体会:

Spark集群环境搭建(standalone模式):典型的Mater/slave模式,Master可能有单点故障的。

 在安装Spark之前,要确保已经安装了JDK 8并正确地配置了环境变量。

9820453c1c134c86ac078b10cd3bd49e.png

相关文章
|
21天前
|
存储 分布式计算 调度
Spark Master HA 主从切换过程不会影响到集群已有作业的运行, 为什么?
Spark Master 的高可用性(HA)机制确保主节点故障时,备用主节点能无缝接管集群管理,保障稳定运行。关键在于: 1. **Driver 和 Executor 独立**:任务执行不依赖 Master。 2. **应用状态保持**:备用 Master 通过 ZooKeeper 恢复集群状态。 3. **ZooKeeper 协调**:快速选举新 Master 并同步状态。 4. **容错机制**:任务可在其他 Executor 上重新调度。 这些特性保证了集群在 Master 故障时仍能正常运行。
|
3月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
本文详细解析了 Apache Spark 的两种常见部署模式:Standalone 和 YARN。Standalone 模式自带轻量级集群管理服务,适合小规模集群;YARN 模式与 Hadoop 生态系统集成,适合大规模生产环境。文章通过示例代码展示了如何在两种模式下运行 Spark 应用程序,并总结了两者的优缺点,帮助读者根据需求选择合适的部署模式。
148 3
|
4月前
|
分布式计算 资源调度 Hadoop
Spark Standalone与YARN的区别?
【10月更文挑战第5天】随着大数据处理需求的增长,Apache Spark 成为了广泛采用的大数据处理框架。本文详细解析了 Spark Standalone 与 YARN 两种常见部署模式的区别,并通过示例代码展示了如何在不同模式下运行 Spark 应用程序。Standalone 模式自带轻量级集群管理,适合小规模集群或独立部署;YARN 则作为外部资源管理器,能够与 Hadoop 生态系统中的其他应用共享资源,更适合大规模生产环境。文章对比了两者的资源管理、部署灵活性、扩展性和集成能力,帮助读者根据需求选择合适的部署模式。
64 1
|
4月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
57 0
|
4月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
45 0
|
4月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
53 0
|
4月前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
66 0
|
4月前
|
SQL 分布式计算 大数据
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
大数据-97 Spark 集群 SparkSQL 原理详细解析 Broadcast Shuffle SQL解析过程(一)
131 0
|
3月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
232 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
4月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
98 0

相关实验场景

更多