VMware创建Linux虚拟机之(五)Spark完全分布式部署教程

简介: VMware创建Linux虚拟机之(五)Spark完全分布式部署教程

Hello,转眼间已到2022年底,学期末……

总体来说,今年经历了很多,真正的成长了许多,成熟了许多。

只能说,希望,明天依旧美好!!!

🐒本篇博客使用到的工具有:VMware16 ,Xftp7

若不熟悉操作命令,推荐使用带GUI页面的CentOS7虚拟机

我将使用带GUI页面的虚拟机演示

虚拟机(Virtual Machine)

指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

【确保服务器集群安装和配置已经完成!】可参考我的博客:

VMware创建Linux虚拟机之(一)实现免密登录_Vim_飞鱼的博客-CSDN博客

VMware创建Linux虚拟机之(二)下载安装JDK与配置Java环境变量_Vim_飞鱼的博客-CSDN博客

VMware创建Linux虚拟机之(三)Hadoop安装与配置及搭建集群_Vim_飞鱼的博客-CSDN博客_利用vmware虚拟机安装hadoop

VMware创建Linux虚拟机之(四)ZooKeeper&HBase完全分布式安装_Vim_飞鱼的博客-CSDN博客_在vmware中hbase的安装和配置

前言

请根据读者的自身情况,进行相应随机应变。

我的三台CentOS7服务器:

主机:master(192.168.149.101)

从机:slave1(192.168.149.102)

从机:slave2(192.168.149.103)

每一个节点的安装与配置是相同的,在实际工作中,通常在master节点上完成安装和配置后,然后将安装目录通过 scp 命令复制到其他节点即可。

注意:所有操作都是root用户权限,需要我们登陆时选择root用户登录。

唯有热爱,可抵岁月漫长,唯有热爱,不畏世间无常!

继Mapreduce之后,作为新一代并且是主流的计算引擎,学好Spark是非常重要的,这一篇博客会专门介绍如何部署一个分布式的Spark计算框架,在之后的博客中,会继续讲到Spark的基本模块的介绍以及底层原理,好了,废话不多说,直接开始吧!

下载Spark安装包

部署Spark时,我们使用的版本如下所示:

Apache Spark™ - Unified Engine for large-scale data analytics

https://spark.apache.org/

解压Spark安装包

       首先,需要确保 network 网络已经配置好,使用 Xftp 等类似工具进行上传,把 spark-3.1.2-bin-hadoop3.2.tgz 上传到 opt/ 目录内。(也可使用U盘等工具拖拽)

上传完成后,在 master 主机上执行以下代码: 解压Spark

cd /opt/
tar -zxvf spark-3.1.2-bin-hadoop3.2.tgz

执行成功后,系统在 opt 目录自动创建 spark-3.1.2 子目录。

 注意:可使用 ls 等命令查看文件解压是否无误。

配置bashrc文件(等同于profile)

#Spark
export SPARK_HOME=/opt/spark-3.1.2
export PATH=$SPARK_HOME/bin:$PATH

三台虚拟机均进行此操作  

修改spark-env.sh文件

[root@master conf]# cp spark-env.sh.template spark-env.sh
[root@master conf]# vim spark-env.sh
[root@master conf]# 

添加如下内容:

export JAVA_HOME=/opt/jdk1.8.0_261
export HADOOP_HOME=/opt/hadoop/hadoop
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_DIST_CLASSPATH=$(/opt/hadoop/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/opt/hadoop/hadoop/etc/hadoop
export SPARK_YARN_USER_ENV="CLASSPATH=/opt/hadoop/hadoop/etc/hadoop"
export YARN_CONF_DIR=/opt/hadoop/hadoop/etc/hadoop

如下图所示:

将spark拷贝到其他两个节点

[root@master conf]# scp -r /opt/spark-3.1.2/ slave1:/opt/
[root@master conf]# scp -r /opt/spark-3.1.2/ slave2:/opt/

启动spark集群并查看进程

 master:

[root@master opt]# /opt/spark-3.1.2/sbin/start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /opt/spark-3.1.2/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out
slave1: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark-3.1.2/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out
slave2: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark-3.1.2/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out
master: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark-3.1.2/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-master.out
[root@master opt]# jps
3860 Worker
3677 Master
3886 Jps

slave1:

[root@slave1 ~]# jps
1749 Worker
1806 Jps
[root@slave1 ~]# 

slave2:

[root@slave2 ~]# jps
3667 Jps
3590 Worker
[root@slave2 ~]# 

启动spark检测是否能正常启动

启动local模式:spark-shell --master local

[root@master hadoop]# cd /opt/spark-3.1.2/conf/
[root@master conf]# spark-shell --master local
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/spark-3.1.2/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/hadoop/hadoop/share/hadoop/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2022-12-21 22:01:54,437 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Spark context Web UI available at http://leader:4040
Spark context available as 'sc' (master = local, app id = local-1671631329749).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.1.2
      /_/
Using Scala version 2.12.10 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_261)
Type in expressions to have them evaluated.
Type :help for more information.
scala> 

结合实例,可以看到我们的 Spark 组件已经完美部署完成!

💪

请问,你学废了吗?


相关文章
|
2月前
|
Ubuntu 网络安全 虚拟化
VMware虚拟机ping不通原因排查及分析
下面以 VMware 虚拟机为例进行介绍。
1221 3
|
16天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
23天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
40 0
|
2月前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下文件数量是常见的需求。本文介绍了四种方法:使用 `ls` 和 `wc` 组合、`find` 命令、`tree` 命令以及编程实现(如 Python)。每种方法都附有详细说明和示例,适合不同水平的用户学习和使用。掌握这些技巧,可以有效提升系统管理和日常使用的效率。
981 6
|
2月前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
87 4
|
8月前
|
分布式计算 大数据 数据处理
Spark RDD(弹性分布式数据集)
Spark RDD(弹性分布式数据集)
|
分布式计算 Java Hadoop
[Spark]Spark RDD 指南三 弹性分布式数据集(RDD)
Spark2.3.0 版本: Spark2.3.0 创建RDD Spark的核心概念是弹性分布式数据集(RDD),RDD是一个可容错、可并行操作的分布式元素集合。
1472 0
|
2月前
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
177 2
ClickHouse与大数据生态集成:Spark & Flink 实战