搭建Spark分布式集群

1,下载

下载 spark-3.5.4-bin-without-hadoop.tgz

地址: https://downloads.apache.org/spark/spark-3.5.4/

2,安装

通过虚拟机设置共享文件夹将需要的安装包复制到linux虚拟机中 localhost1。虚拟机的共享盘在 /mnt/hgfs/。 将共享盘安装包复制到 存在目标路径/opt/software/

解压缩

bash 复制代码
cd /opt/software/
tar -zxvf spark-3.5.4-bin-without-hadoop.tgz -C /usr/local/applications/

3,配置环境变量

配置三个Linux节点

bash 复制代码
vi /etc/profile


SPARK_HOME=/usr/local/applications/spark-3.5.4-bin-without-hadoop
PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

export SPARK_HOME PATH
bash 复制代码
source /etc/profile

4,修改Spark配置

bash 复制代码
cd $SPARK_HOME/conf

workers

bash 复制代码
cp workers.template workers

vi workers

localhost1
localhost2
localhost3

spark-defaults.conf

bash 复制代码
cp spark-defaults.conf.template spark-defaults.conf

vi spark-defaults.conf

spark.master                     spark://localhost1:7077
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://localhost1:9000/spark-eventlog
spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.driver.memory              512m

启动HDFS

bash 复制代码
start-dfs.sh

创建HDFS日志目录

bash 复制代码
hdfs dfs -mkdir /spark-eventlog

spark-env.sh

bash 复制代码
cp spark-env.sh.template spark-env.sh

vi spark-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_431
export HADOOP_HOME=/usr/local/applications/hadoop-3.3.6
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export SPARK_DIST_CLASSPATH=$(/usr/local/applications/hadoop-3.3.6/bin/hadoop classpath)
export SPARK_MASTER_HOST=localhost1
export SPARK_MASTER_PORT=7077

5, 将Spark软件分发到集群

先关闭防火墙

bash 复制代码
systemctl stop firewalld
 
systemctl disable firewalld

将spark分发到localhost2 和 localhost3

bash 复制代码
cd /usr/local/applications
scp -r spark-3.5.4-bin-without-hadoop root@localhost2:/usr/local/applications/spark-3.5.4-bin-without-hadoop
scp -r spark-3.5.4-bin-without-hadoop root@localhost3:/usr/local/applications/spark-3.5.4-bin-without-hadoop

6, 启动集群

bash 复制代码
cd $SPARK_HOME/sbin

./start-all.sh

启动后查看三个节点的进程

bash 复制代码
[root@localhost1 sbin]# jps
3397 Jps
3190 Master
3336 Worker


[root@localhost2 ~]# jps
2966 Worker
3030 Jps


[root@localhost3 ~]# jps
2972 Worker
3037 Jps

在浏览器中输入:

可以看见如下 Spark 的 Web 界面:

7,集群测试

需要使用hdfs,所以需要先启动HDFS

bash 复制代码
start-dfs.sh

1, 计算圆周率

bash 复制代码
run-example SparkPi 10

输出结果

bash 复制代码
[root@localhost1 conf]# run-example SparkPi 10
Pi is roughly 3.141343141343141

2, 启动spark-shell

bash 复制代码
[root@localhost1 conf]# spark-shell
Spark context Web UI available at http://localhost1:4040
Spark context available as 'sc' (master = spark://localhost1:7077, app id = app-20250128143941-0005).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.5.4
      /_/
         
Using Scala version 2.12.18 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_431)
Type in expressions to have them evaluated.
Type :help for more information.

scala> 

http://localhost1:4040/jobs/

在spark shell 中执行

bash 复制代码
scala> val lines = sc.textFile("/wcinput/wc.txt")
lines: org.apache.spark.rdd.RDD[String] = /wcinput/wc.txt MapPartitionsRDD[1] at textFile at <console>:23

scala> lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect().foreach(println)
(mapreduce,3)                                                                   
(yarn,2)
(neil,3)
(hadoop,2)
(jack,3)
(hdfs,1)
相关推荐
ljs64827395119 分钟前
VMware 中部署 HDFS 集群环境(Hadoop 3.4.3)完整指南
大数据·hadoop·hdfs
雪碧聊技术9 小时前
Badge 应用场景与落地实践指南
大数据·人工智能
望江东浪9 小时前
我的 Claude Code 效率工具全套配置分享
大数据·elasticsearch·搜索引擎
chaoyuanl10 小时前
现有游乐设施 XR 数字化升级改造方案
大数据·科技·3d·xr·娱乐
LL3344556711 小时前
创业自动化平台怎么选
大数据·人工智能
珠海西格电力12 小时前
云边端协同架构:零碳园区管理系统的技术底座
大数据·运维·人工智能·算法·架构·能源
cc57250265313 小时前
大数据专业是不是热门专业
大数据
汇策研习社13 小时前
StdDev标准差指标深度解析:量化市场波动的核心工具
大数据·经验分享·金融·区块链·fastbull
大大大大晴天14 小时前
Hudi技术内幕: Concurrency Control原理与实践
大数据
阿里云大数据AI技术14 小时前
DataWorks Data Agent 实战课堂(一):解锁你的7×24h全能“数据搭子”DataWorks AI助理!
大数据·人工智能·agent