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



    原创申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址
    全文共计4532字,阅读大概需要3分钟
    欢迎关注我的个人公众号:不懂开发的程序猿

    1. 实验室名称:

    大数据实验教学系统

    2. 实验项目名称:

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

    3. 实验学时:

    4. 实验原理:

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

    nameValue
    • 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
    
    • 1
    • 2

    如果在终端窗口中输出了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
    
    • 1
    • 2
    • 3
    • 4

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

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

    如果均不需要输入密码即可连接,说明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
    
    • 1
    • 2
    • 3

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

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

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

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

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

    1.	$ source /etc/profile
    
    • 1

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

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

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

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

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

    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)
    
    • 1
    • 2
    • 3

    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/
    
    • 1
    • 2
    • 3

    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
    
    • 1
    • 2
    • 3

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

    1.	master
    2.	slave1
    3.	slave2
    
    • 1
    • 2
    • 3

    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
    
    • 1
    • 2

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

    1.	$ jps
    
    • 1

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

    42145 Master
    42536 Jps
    42270 Worker
    
    
    • 1
    • 2
    • 3
    • 4

    由以上输出内容可以看出,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
    
    • 1
    • 2

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

    Pi is roughly 3.140675703378517
    
    • 1

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

    8.9 关闭Spark集群:

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

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

    可以看到,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并正确地配置了环境变量。

    在这里插入图片描述

  • 相关阅读:
    什么是嵌入式视觉
    对TCP连接的“三次握手”和“四次挥手”详解!【不要再傻傻分不清了】
    【springboot】19、数据库操作
    Less常用内置函数
    【常识】回调函数
    宝塔手把手教学-Linux面板安装LNMP & worldpress个人博客
    【HCIA】交换基础
    Mysql分组查询获取每组最新一条数据
    idea中git 移除对某个文件的跟踪
    Spring Thymeleaf模版注入分析
  • 原文地址:https://blog.csdn.net/qq_44807756/article/details/125551757