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
解压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 组件已经完美部署完成!
💪