📋 博主简介
- 💖 作者简介:大家好,我是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节点、当前并没有提交运行的应用程序,如图所示。
结束语
好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。