《PySpark大数据分析实战》-09.Spark独立集群安装

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏⭐️+吐槽📝,您的支持是我持续创作的动力~🔥

《PySpark大数据分析实战》-09.Spark独立集群安装

《PySpark大数据分析实战》-09.Spark独立集群安装

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第2章第3节的内容:Spark独立集群安装。

图书在:当当京东机械工业出版社以及各大书店有售!

Spark独立集群安装

Spark独立集群的安装,至少需要3台服务器,在安装Spark之前,按照《PySpark大数据分析实战》-06.安装环境准备的步骤准备好3台服务器。解压Spark安装软件到目标位置,命令如下:

bash 复制代码
$ tar -xzf spark-3.4.0-bin-hadoop3.tgz -C apps

配置并启动Spark集群

Spark软件安装好以后,每台服务器节点上的Spark软件都是独立的,还未组成集群,需要对其进行配置让所有节点组合成Spark集群,Spark的配置文件全部存放在安装路径的conf目录下。确保Spark的配置信息在所有节点上都是一样的,可以在每个节点上分别修改配置文件,也可以在一个节点上修改好配置文件后复制到其他节点。

配置环境变量

在集群模式下,涉及各个节点之间的一些命令交互,所以需要配置环境变量。主要是在每个节点上都配置SPARK_HOME和PATH。在node1上配置环境变量,命令如下:

bash 复制代码
$ vi ~/.bashrc

环境变量配置内容如下:

text 复制代码
export SPARK_HOME=/home/hadoop/apps/spark-3.4.0-bin-hadoop3
PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PATH

环境变量配置完成后,执行命令让新配置的环境变量生效,命令如下:

bash 复制代码
$ source ~/.bashrc
配置workers

workers文件配置了当前Spark独立集群环境下,有哪些worker节点,将规划的3个节点都添加进去,每个节点占1行,可以使用主机名称,也可以使用IP地址。在node1上配置workers,命令如下:

bash 复制代码
$ cd ~/apps/spark-3.4.0-bin-hadoop3/conf/
$ cp workers.template workers
$ vi workers

workers配置内容如下:

text 复制代码
node1
node2
node3
配置spark-default.conf

spark-submit提交的应用程序运行完成后,Spark Driver Web UI就会关闭,无法继续访问,为了能够查看已运行完成的应用程序的执行情况,Spark提供了History Server服务,在spark-default.conf配置文件中进行History Server的配置。在node1上配置spark-default.conf,命令如下:

bash 复制代码
$ cd ~/apps/spark-3.4.0-bin-hadoop3/conf/
$ cp spark-defaults.conf.template spark-defaults.conf
$ vi spark-defaults.conf

spark-default.conf配置内容如下:

text 复制代码
# 指定启用eventLog
spark.eventLog.enabled           true
# 指定eventLog的存储目录
spark.eventLog.dir               /tmp/spark-events
配置spark-env.sh

spark-env.sh文件主要是配置集群的环境信息,主要配置Java的路径、集群中Master节点是哪个、Master通讯端口是多少、Spark Master Web UI端口是多少、Spark日志路径和工作路径等,复制模板文件并在里面追加配置信息,配置文件中的SPARK_MASTER_HOST使用的是主机名称node1。在node1上配置spark-env.sh,命令如下:

bash 复制代码
$ cd ~/apps/spark-3.4.0-bin-hadoop3/conf/
$ cp spark-env.sh.template spark-env.sh
$ vi spark-env.sh

spark-env.sh配置内容如下:

text 复制代码
# 指定 Spark Master运行在哪个机器上
SPARK_MASTER_HOST=node1
# 指定 Spark Master 的通讯端口
SPARK_MASTER_PORT=7077
# 指定 Spark Master 的 WebUI 端口
SPARK_MASTER_WEBUI_PORT=8080
# 指定 Spark 的日志存放路径
SPARK_LOG_DIR=/home/hadoop/logs/spark
# 指定 Spark 的工作路径
SPARK_WORKER_DIR=/home/hadoop/works/spark
环境信息同步

确保3台服务器上的配置文件完全一致,为了防止配置出错,直接使用命令将node1上的配置文件复制到其他服务器上,复制命令如下:

复制代码
$ scp -r .bashrc apps node2:~/
$ scp -r .bashrc apps node3:~/

确保在3台服务器上创建好event日志目录/tmp/spark-events,使用命令创建目录,命令如下:

bash 复制代码
$ ssh node1 mkdir -p /tmp/spark-events
$ ssh node2 mkdir -p /tmp/spark-events
$ ssh node3 mkdir -p /tmp/spark-events
启动Spark独立集群

启动集群的命令start-all.sh、启动History Server的命令start-history-server.sh所在的路径SPARK_HOME/sbin/已经添加到环境变量PATH里面,可以直接执行命令。在node1上执行启动Spark命令,命令如下:

bash 复制代码
$ start-all.sh
$ start-history-server.sh

等待服务启动完成,每台服务器节点上都有Worker进程,由于在spark-env.sh配置文件中配置了SPARK_MASTER_HOST=node1,所以node1节点上有Master进程,在node1上启动了History Server。如图所示。

集群启动成功后,通过浏览器访问node1的8080端口打开Spark Master Web UI界面。集群的相关信息包括master地址是spark://node1:7077、当前集群有3个Worker节点、当前并没有提交运行的应用程序,如图所示。

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

相关推荐
武子康4 小时前
大数据-242 离线数仓 - DataX 实战:MySQL 全量/增量导入 HDFS + Hive 分区(离线数仓 ODS
大数据·后端·apache hive
SelectDB1 天前
易车 × Apache Doris:构建湖仓一体新架构,加速 AI 业务融合实践
大数据·agent·mcp
武子康1 天前
大数据-241 离线数仓 - 实战:电商核心交易数据模型与 MySQL 源表设计(订单/商品/品类/店铺/支付)
大数据·后端·mysql
IvanCodes1 天前
一、消息队列理论基础与Kafka架构价值解析
大数据·后端·kafka
武子康2 天前
大数据-240 离线数仓 - 广告业务 Hive ADS 实战:DataX 将 HDFS 分区表导出到 MySQL
大数据·后端·apache hive
NineData3 天前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析
字节跳动数据平台3 天前
5000 字技术向拆解 | 火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
武子康3 天前
大数据-239 离线数仓 - 广告业务实战:Flume 导入日志到 HDFS,并完成 Hive ODS/DWD 分层加载
大数据·后端·apache hive
字节跳动数据平台4 天前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术4 天前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark