Spark集群环境搭建(standalone模式)
Spark集群环境搭建(standalone模式)
- 1. 实验室名称:
- 2. 实验项目名称:
- 3. 实验学时:
- 4. 实验原理:
- 5. 实验目的:
- 6. 实验内容:
- 7. 实验器材(设备、虚拟机名称):
- 8. 实验步骤:
- 8.1 验证是否已经正确地安装了JDK
- 8.2 验证是否已经正确地配置了SSH无密码登录
- 8.3 在master节点上安装Spark
- 8.4 设置spark运行环境和配置参数
- 5.5 同步Spark安装和配置
- 5.6 配置slaves
- 8.7 测试spark
- 8.8 在Spark集群上执行Spark程序
- 8.9 关闭Spark集群:
- 8.10 小结
- 9. 实验结果及分析:
- 10. 实验结论:
- 11. 总结及心得体会:
原创申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
全文共计4532字,阅读大概需要3分钟
欢迎关注我的个人公众号:不懂开发的程序猿
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界面:
从上图中可以看到显示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并正确地配置了环境变量。
Spark集群环境搭建(standalone模式)相关推荐
- spark-1.2.0 集群环境搭建
1.下载scala2.11.4版本 下载地址为:http://www.scala-lang.org/download/2.11.4.html ,也可以使用wget http://downloads.t ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装
一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120master192.168.0.121slave1192.168.0.122 slave2 ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十二)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网。...
Centos7出现异常:Failed to start LSB: Bring up/down networking. 按照<Kafka:ZK+Kafka+Spark Streaming集群环境搭 ...
- 大数据 -- Hadoop集群环境搭建
首先我们来认识一下HDFS, HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.它其实是将一个大文件分成若干块保存在不同服务器的多个节点中.通过联网 ...
- 大数据介绍、集群环境搭建、Hadoop介绍、HDFS入门介绍
大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 文章目录 大数据介绍.集群环境搭建.Hadoop介绍.HDFS入门介绍 1.课前资料 2.课程整体介绍 3.大数据介绍 3.1 什么是大数 ...
- 2W 字详解 Redis 6.0 集群环境搭建实践
原文链接:https://www.cnblogs.com/hueyxu/p/13884800.html 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环 ...
- 『高级篇』docker之DockerSwarm的集群环境搭建(28)
原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『高级篇』docker之DockerSwarm的集群环境搭建(28) 上次了解了docker Swarm,这次一起动手操作,搭 ...
- 学习笔记之-Kubernetes(K8S)介绍,集群环境搭建,Pod详解,Pod控制器详解,Service详解,数据存储,安全认证,DashBoard
笔记来源于观看黑马程序员Kubernetes(K8S)教程 第一章 kubernetes介绍 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署 ...
最新文章
- arcgis栅格计算器python教程_ArcGIS栅格计算器
- Win32 汇编语句模板
- 一个备份MySQL数据库的简单Shell脚本(转)
- java 连接池连接mysql数据库需要哪些jar包_DBCP-基于Java8导入DBCP连接池所需JAR包并编写DBCPUtils工具类...
- Oracle入门(三B)之11G新特性 SYSASM 角色用来管理ASM
- python爬虫开发 从入门到实战_python网络爬虫从入门到实战开发
- 雷军:小米CC9 Pro人像镜头简直太奢华了
- MySQL 8 新特性之持久化全局变量的修改
- PUT 还是 POST ?
- 重装Win7系统步骤和详细教程
- phpspreadsheet excel导入导出
- android视频播放异常,Android 播放视频常见问题小结
- C++中string子串
- OBS第三方推流直播教程
- php搜索引擎开源源码,PHP搜索引擎源代码
- STM32F4单片机bootloader及在线升级IAP基本原理
- 解决AD中PCB芯片引脚之间间距太小
- 便携式航电实时系统测试平台工作台设计
- python外星人入侵添加音效_python外星人入侵游戏打包
- 微创机器人上市收涨背后:新股热情或回暖,下一个是谁?