当前位置: 首页 > article >正文

搭建分布式Spark集群

title: 搭建分布式Spark集群
date: 2024-11-29 12:00:00
categories: 
- 服务器
tags:
- Spark
- 大数据

搭建分布式Spark集群

  • 本次实验环境:Centos 7-2009、Hadoop-3.1.4、JDK 8、Zookeeper-3.6.3、scala-2.11.5、Spark-3.2.1

功能规划

MasterSlave1Slave2
主节点(master)工作节点(worker)工作节点(worker)
192.168.66.6192.168.66.7192.168.66.21

前提

Spark是基于Scala语言开发的,而Scala语言是基于JAVA语言开发的;故需要先配置好两种语言的环境

Spark工作中需要Hadoop集群;故需要先搭建好Hadoop集群,并启动

准备工作

1. 解压Scala

  • 首先上传Scala的文件到服务器上
# 解压文件到指定目录
tar -zxvf scala-2.11.5.tgz -C /opt/module/

#  重命名文件夹
mv /opt/module/scala-2.11.5/ /opt/module/scala

2. 配置用户环境变量

cat >>  ~/.bashrc << "EOF"

# ------------------- Scala 配置--------------------
# 设置Scala环境变量,指向Scala安装目录
export SCALA_HOME=/opt/module/scala

# 将Scala的bin目录添加到PATH环境变量
export PATH=$PATH:$SCALA_HOME/bin
# -------------------------------------------------
EOF
-----------------------------------------------------------
                          说明

举例   export PATH=$SCALA_HOME/bin:$PATH

英文冒号代表分隔

这段代码表示
1. 当你输入一个命令时,shell会首先在"SCALA_HOME"这个变量的"bin"子目录中查找,
2. 最后,若找不到,则在"PATH"的指定目录中查找

-------------------------------------------------------------

开始安装

3. 解压Spark

  • 首先上传Spark的文件到服务器上
# 解压文件到指定目录
tar -zxvf spark-3.2.1-bin-hadoop2.7.tgz -C /opt/module/

#  重命名文件夹
mv /opt/module/spark-3.2.1-bin-hadoop2.7 /opt/module/spark

4. 配置用户环境变量

cat >>  ~/.bashrc << "EOF"
# ------------------- Spark 配置--------------------
# 设置Spark环境变量,指向Spark安装目录
export SPARK_HOME=/opt/module/spark

# 将Spark的bin目录添加到PATH环境变量
export PATH=$PATH:$SPARK_HOME/bin
# -------------------------------------------------
EOF
-----------------------------------------------------------
                          说明

举例   export PATH=$SPARK_HOME/bin:$PATH

英文冒号代表分隔

这段代码表示
1. 当你输入一个命令时,shell会首先在"SPARK_HOME"这个变量的"bin"子目录中查找,
2. 最后,若找不到,则在"PATH"的指定目录中查找

-------------------------------------------------------------

5. 编写spark主节点的配置文件

# 进入spark配置目录
cd /opt/module/spark/conf

# 复制spark-env.sh模板
cp spark-env.sh.template spark-env.sh
根据自己节点的信息,或者查看~/.bashrc,修改下面各项的内容,随后复制粘贴即可
cat >> spark-env.sh << "EOF"
# 配置Spark主节点的IP或主机名
export SPARK_MASTER_IP=master
# 配置Scala的家目录
export SCALA_HOME=/opt/module/scala
# 配置Spark工作节点的内存大小
export SPARK_WORKER_MEMORY=4g
# 配置JAVA的家目录
export JAVA_HOME=/opt/module/jdk1.8.0_202
# 配置Hadoop的家目录
export HADOOP_HOME=/opt/module/hadoop-3.1.4
# 配置Hadoop的配置目录
export HADOOP_CONF_DIR=/opt/module/hadoop-3.1.4/etc/hadoop
EOF

6. 编写spark工作节点的配置文件

# 复制workers模板
cp workers.template workers
根据自己工作节点的信息,修改下面的内容,随后复制粘贴即可
# 清空工作节点原本的信息——即删除这个文件的最后一行
sed -i '$d' workers

# 配置工作节点
cat >> workers << EOF
slave1
slave2
EOF

7. 同步文件

# 同步到slave1机器
scp -r /opt/module/scala/ slave1:/opt/module/
scp -r /opt/module/spark/ slave1:/opt/module/
scp  ~/.bashrc root@slave1:/root

# 同步到slave2机器
scp -r /opt/module/scala/ slave2:/opt/module/
scp -r /opt/module/spark/ slave2:/opt/module/
scp  ~/.bashrc root@slave2:/root

8. 环境变量生效

# master节点环境变量生效
source  ~/.bashrc

# slave1节点环境变量生效
ssh slave1 'source  ~/.bashrc'

# slave2节点环境变量生效
ssh slave2 'source  ~/.bashrc'

安装结束

9. 启动Spark集群

$SPARK_HOME/sbin/start-all.sh

10. 查看Spark进程

  • master会有Master的进程

  • slave1会有Worker的进程

  • slave2会有Worker的进程

# 命令
jps

11. 浏览器访问

访问Spark,地址:http://192.168.66.6:端口

#端口详情
4040:这是Spark UI的默认端口,用于监控和查看Spark应用的状态。
7077:这是StandAlone模式下Spark Master服务的默认端口。
8080:这是Spark Master的Web UI端口,用于查看集群状态。
8081:这是Spark Worker的Web UI端口,用于查看单个工作节点的状态。

这个地址是master的IP地址

12. 停止Spark集群

$SPARK_HOME/sbin/stop-all.sh

参考文档

  1. 大数据分布式集群搭建详细步骤(Spark的安装与配置)_spark分布式集群部署及ha配置-CSDN博客

  2. 【Spark】Windows下安装Spark(亲测成功安装)_windows安装spark-CSDN博客

  3. Apache Spark 3.2.1安装教程-百度开发者中心


http://www.kler.cn/a/442316.html

相关文章:

  • @Scope(“prototype“)
  • 【无法下载github文件】虚拟机下ubuntu无法拉取github文件
  • 微服务拆分
  • Android面试题
  • 语音合成的预训练模型
  • npm发布组件(vue3+webpack)
  • Golang学习笔记_13——数组
  • MR30分布式IO模块:驱动物流传输机高效升级
  • 鸿蒙Next条件渲染用法总结
  • GPT 时代,精进编程思维 + 熟练 Prompt 是否是新的编程范式?
  • HTMLCSS:3D动态卡车
  • ChatGPT生成测试用例的最佳实践(三)
  • 设计模式——单例模式(饿汉式,懒汉式等)
  • 用户输入 %%%% , MYSQL中数据全被查询出来的Bug(GORM)
  • Java程序员如何高效学习Spring Cloud Alibaba?
  • 【ETCD】ETCD 架构揭秘:内部各组件概览
  • 基于 SSM 和 Vue 架构的新锐台球厅管理系统:创新设计引领高效实现
  • RabbitMQ中的Publish-Subscribe模式
  • 单片机:实现教学上下课的自动打玲(附带源码)
  • 【数理统计】极限定理及抽样分布
  • python之求平面离散点集围成的面积
  • Qt 开发笔记2
  • 深度学习之循环神经网络及进化(RNN-LSTM-GRU)
  • 安防监控Liveweb视频汇聚融合平台助力执法记录仪高效使用
  • 快消品 B2B 困境与破局:基于 2+1 链动模式与 S2B2C 商城小程序的思考
  • Starting MySQL.... ERROR! The server quit without updating PID file解决方案