spark集群搭建

本文详细描述了如何在CentOS7环境中,通过Xshell和Xftp工具,使用Anaconda和Hadoop3.3.4版本,安装Python3.9的Spark3.4.2版本,并配置Spark集群,包括环境设置、文件复制、配置文件编辑和启动过程。
摘要由CSDN通过智能技术生成

spark集群搭建

环境

操作系统:CentOS-7-x86_64

ssh连接工具:Xshell7

FTP连接工具:Xftp7

虚拟机:VMware-Workstation-Pro/17.0

hadoop版本:3.3.4

搭建的三个节点名称分别是node1、node2、node3

其他要用到的程序版本在本文中都可看到就不一一列举了

下载和安装

基于python开发环境下的spark,所以首先要安装anaconda

anaconda下载和安装:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2022.05-Linux-x86_64.sh

先将下载好的anaconda安装包上传到节点node1的用户目录(我这里的用户是huser)
在这里插入图片描述

sh Anaconda3-2022.05-Linux-x86_64.sh

在这里插入图片描述
按回车继续
在这里插入图片描述
按空格跳过直到出现上图所示的信息,输入yes
在这里插入图片描述
这里我们选择默认的安装位置,所以直接回车就行了,等待安装,也可根据自己的情况输入要安装的位置(绝对路径)
在这里插入图片描述
输入yes进行初始化

reboot	# 重启系统或者用自己的ssh工具重新连接一下该节点

在这里插入图片描述
重启后就能看到(base),这个是anaconda的默认基础环境
配置anaconda清华源,anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror,复制源配置信息

vim ~/.condarc # 在用户目录创建并打开.condarc文件,粘贴刚才复制的内容

在这里插入图片描述

conda clean -i # 清除索引缓存,保证用的是镜像站提供的索引

添加自己的用户环境

conda create -n pyspark python=3.9 # 这里我安装的anacond的python版本为3.9
conda activate pyspark # 激活这个用户

在这里插入图片描述

sudo vim /etc/profile # 编辑环境变量

在这里插入图片描述

source /etc/profile	# 重新加载系统环境变量

到这里anaconda就安装配置完成了,另外两个节点重复上述步骤

spark下载和安装:

从官网链接Downloads | Apache Spark下载spark安装包,如下图所示,选中红色标记的这个版本

在这里插入图片描述

将spark压缩包上传到节点node1,并将其解压至/usr/local目录下

sudo tar -xvf spark-3.4.2-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv spark-3.4.2-bin-without-hadoop/ spark # 给文件夹重命名,方便后续的环境配置

修改spark目录拥有者为huser(普通登录用户)

sudo chown -R huser:huser /usr/local/spark/

在这里插入图片描述

进入spark配置目录,复制并删除文件后缀template

cd /usr/local/spark/conf
# 下面命令一定要执行,要配置的文件就是这些去掉后缀template的文件
cp workers.template workers
cp spark-env.sh.template spark-env.sh
cp spark-defaults.conf.template spark-defaults.conf
cp log4j2.properties.template log4j2.properties	# 可选配置

配置

start-all.sh	# 确保hadoop集群是启动的

配置workers文件,我们是要搭建集群模式,所以删掉localhost添加我们的三个节点名称

vim workers	# 注意此时我们处在/usr/local/spark/conf目录下,所以可以直接编辑wokers文件

在这里插入图片描述

配置spark-env.sh文件

vim spark-env.sh

复制下面内容粘贴到该文件末尾

# 设置Java安装目录
JAVA_HOME=/usr/java/jdk1.8.0_333-amd64
##重要的说三遍,这里的/usr/local/hadoop-3.3.4是我hadoop的安装路径!
##重要的说三遍,这里的/usr/local/hadoop-3.3.4是我hadoop的安装路径!
##重要的说三遍,这里的/usr/local/hadoop-3.3.4是我hadoop的安装路径!
##选择自己的hadoop安装路径,以及其他的程序(jdk等)路径都要根据自己情况修改
##上面包括本行都是为了说明信息,可以删除
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop-3.3.4/bin/hadoop classpath)
# HADOOP软件配置文件目录,读取HDFS上文件和运行YARN集群
HADOOP_CONF_DIR=/usr/local/hadoop-3.3.4/etc/hadoop
YARN_CONF_DIR=/usr/local/hadoop-3.3.4/etc/hadoop

# 指定spark老大Master的IP和提交任务的通信端口
export SPARK_MASTER_HOST=node1
# sparkmaster的通讯端口
export SPARK_MASTER_PORT=7077
# sparkmaster的webUI端口
SPARK_MASTER_WEBUI_PORT=8080

# worker cpu可用核数
SPARK_WORKER_CORES=1
# worker 可用内存
SPARK_WORKER_MEMORY=1g
# worker的通讯端口
SPARK_WORKER_PORT=7078
# worker的webUI端口
SPARK_WORKER_WEBUI_PORT=8081

# 设置历史服务器,将spark程序运行的历史日志、存到hdfs的/sparklog的文件夹中
SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://node1:9000/sparklog/ -Dspark.history.fs.cleaner.enabled=true"

在这里插入图片描述

spark的历史日志要存储到hdfs的/sparklog的文件夹中,查看hdfs是否存在sparklog目录,不存在则创建

hadoop fs -ls / # 查看hdfs是否存在sparklog目录
hadoop fs -mkdir /sparklog # 在hdfs中创建/sparklog目录
hadoop fs -chmod 777 /sparklog # 设置所有人可读写的权限,方便后续操作

在这里插入图片描述

配置spark-defaults.conf文件

vim spark-defaults.conf

复制下面内容粘贴到该文件末尾

# 开启spark的日期记录功能
spark.eventLog.enabled  true
# 设置spark日志记录的路径
spark.eventLog.dir   hdfs://node1:9000/sparklog/ # 填写你自己的hdfs对应地址
# 设置spark日志是否启动压缩
spark.eventLog.compress  true

在这里插入图片描述

可选配置log4j2.properties文件,将rootLogger.level = info 改为 WARN

在这里插入图片描述

sudo vim /etc/profile
# 下面这两行插入到/etc/profile的末尾或页首
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source /etc/profile # 重新加载系统环境变量,使添加的环境变量生效

在这里插入图片描述

分发和运行

spark文件夹分发给另外的两个节点,并分别对spark文件夹修改属主(即文件夹拥有者)

sudo scp -r spark/ node2:/usr/local
sudo scp -r spark/ node3:/usr/local
# 下面这个命令是node2、node3要进行的操作
sudo chown -R huser:huser /usr/local/spark

/etc/profile文件也分发给另外的两个节点,保证环境变量的一致

sudo scp /etc/profile node2:/etc/
sudo scp /etc/profile node3:/etc/
# 另外两个节点,node2、node3执行下面命令,重新加载系统环境变量
source /etc/profile

回到节点node1,运行spark

cd /usr/local/spark
# 进入spark目录才能运行下面的命令,也可输入/usr/local/sparksbin/start-all.sh运行spark
sbin/start-all.sh

查看各个节点运行spark后的信息

jps

node1出现Master和Worker,node2和node3出现Worker则说明运行成功

node1:

在这里插入图片描述

node2:

在这里插入图片描述

node3:

在这里插入图片描述

最后访问节点node1的8080端口则可看到spark的webUI界面,这里我的IP是192.168.239.80,所以直接访问192.168.239.80:8080,也可node1:8080,不过要修改本机hosts文件写入node1到192.168.239.80的映射,感兴趣的可以去尝试修改

在这里插入图片描述

到这里基于python开发环境下的spark集群就整个搭建完成了!

总结

搭建过程有几个要注意的点

  1. anaconda下载的版本和本文所给链接下载的版本尽量一致,其他版本没测试,不确定会不会成功
  2. anaconda的镜像源最好是到各个知名镜像源,寻求最新的配置信息
  3. spark安装到指定目录后一定要修改属主为你自己的hadoop启动用户
  4. 每次修改/etc/profile文件都要source该文件,重新加载系统环境变量,以免有些命令无法执行
  5. 最重要的是根据自己环境、程序的具体情况,如安装路径等都要改为自己的不要盲目的复制粘贴
  6. 配置任何环境最好去找官方文档,可以更好的理解配置信息和怎样去配置,在参考链接也放了spark的官方文档链接及一些spark中文文档链接

整体流程算是比较清晰,按步骤来相信大家可以完成spark集群的搭建。只是有一些细节点需要注意,一定要灵活应变,透过现象看本质。

感谢各位抽时间阅读我的首篇博文,希望你们能从中获得一些启发,虽然我尽力确保本文内容的准确性,但难免会有疏漏之处,请各位谅解并指正,欢迎大家交流讨论。

参考链接

Linux环境安装Anaconda(详细图文)-CSDN博客

linux中anaconda更换源_linux anaconda 换源-CSDN博客

Spark 集群搭建(完整)_spark分布式集群部署及ha配置-CSDN博客

Spark从集群环境搭建到运行第一个案例 超详细教程!!-腾讯云开发者社区-腾讯云 (tencent.com)

PySpark导学_哔哩哔哩_bilibili

Spark Standalone Mode - Spark 3.5.1 Documentation (apache.org)

PySpark 概述 — PySpark master 文档 (apache.org)

om/video/BV1Jq4y1z7VP?p=1&vd_source=ad0e8b2f5059ee68770e866282191164)

Spark Standalone Mode - Spark 3.5.1 Documentation (apache.org)

PySpark 概述 — PySpark master 文档 (apache.org)

Spark 2.2.x 中文官方参考文档 — Spark 2.2.x 中文文档 2.2.1 文档 (spark-reference-doc-cn.readthedocs.io)

  • 32
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值