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

Spark 集群搭建:Standalone 模式详解

在大数据处理领域,Spark 凭借其高效的内存计算能力广受青睐。搭建一个稳定、高效的 Spark 集群是充分发挥其性能的关键。本文将详细讲解如何搭建 Spark Standalone 集群。

一、环境准备

  1. 硬件要求

    • 至少准备三台服务器(一台作为主节点,两台作为从节点)。每台服务器建议配置 4 核 CPU、8GB 内存、100GB 以上硬盘空间。服务器之间的网络要高速、稳定,以确保数据传输的高效性。

  2. 软件要求

    • 操作系统:CentOS 7.x 或 Ubuntu 20.04 等 Linux 系统。

    • Java 环境:安装 JDK 1.8.x 以上版本。因为 Spark 是基于 Java 的框架,需要 Java 环境来运行。

    • Scala 环境:虽然 Spark 用 Scala 开发,但通常在集群搭建中,只要 Java 环境满足要求,Scala 相关的依赖 Spark 自带版本即可正常工作。

    • SSH 服务:用于在主节点远程管理从节点,确保在主节点能够通过 SSH 免密登录到各个从节点。

二、安装 Java 环境

  1. 在所有节点上安装

    • 下载 JDK 安装包,可以从 Oracle 官网获取。例如,下载链接为 Java Downloads | Oracle(具体链接可能因版本更新而变化)。

    • 解压安装包到指定目录,如 /usr/local/java。在终端执行以下命令: tar -zxvf jdk-8u301-linux-x64.tar.gz -C /usr/local/java

    • 配置环境变量。编辑 /etc/profile 文件,添加以下内容:
    • export JAVA_HOME=/usr/local/java/jdk1.8.0_301
      export JRE_HOME=${JAVA_HOME}/jre
      export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
      export PATH=${JAVA_HOME}/bin:$PATH
    • 使环境变量生效,执行 source /etc/profile 命令。

    • 验证安装是否成功,执行 java -version 命令,若输出版本信息则安装成功。

三、安装 Spark

  1. 在主节点上安装

    • 下载 Spark 安装包,从 Spark 官网 Downloads | Apache Spark 选择合适的版本,如 Spark 3.3.0,下载地址可能为 https://downloads.apache.org/spark/spark-3.3.0/spark-3.3.0-bin-hadoop3.tgz(具体链接根据实际情况而定)。

    • 解压到指定目录,如 /opt/spark。执行命令: tar -zxvf spark-3.3.0-bin-hadoop3.tgz -C /opt

    • 配置 Spark 环境变量。编辑 /etc/profile 文件,添加:
    • export SPARK_HOME=/opt/spark-3.3.0-bin-hadoop3
      export PATH=${SPARK_HOME}/bin:${PATH}
    • 使环境变量生效,执行 source /etc/profile 命令。

  • 将 Spark 分发到从节点

    • 在主节点上,使用 scp 命令将 Spark 安装包分发到从节点。例如,从节点 IP 分别为 192.168.1.101 和 192.168.1.102,执行以下命令将安装包复制到从节点的/opt目录下:
    • scp -r /opt/spark-3.3.0-bin-hadoop3 root@192.168.1.101:/opt
      scp -r /opt/spark-3.3.0-bin-hadoop3 root@192.168.1.102:/opt
    • 在从节点上,同样配置 Spark 环境变量并使其生效。

四、配置 Spark Standalone 集群

  1. 主节点配置

    • 编辑 Spark 主节点的配置文件 conf/spark-env.sh。如果没有该文件,可以复制 conf/spark-env.sh.template 并重命名为 spark-env.sh。在文件中添加以下内容:
  • export SPARK_MASTER_HOST=<主节点主机名或 IP>
    export SPARK_MASTER_PORT=7077
    export SPARK_WORKER_CORES=2 # 根据从节点实际可用 CPU 核数设置
    export SPARK_WORKER_MEMORY=4G # 根据从节点实际可用内存设置
  • 创建集群配置文件 conf/slaves。在文件中列出从节点的主机名或 IP 地址,每个从节点占一行。例如:
    • 192.168.1.101
      192.168.1.102
  1. 从节点配置

    • 在每个从节点上,只需确保 Spark 的配置与主节点一致即可,特别是 SPARK_MASTER_HOST 要指向主节点的地址。

五、启动 Spark 集群

  1. 启动主节点

    • 在主节点的 Spark 安装目录下执行以下命令启动主节点: sbin/start-master.sh

    • 查看主节点是否启动成功,可以通过浏览器访问 http://<主节点主机名或 IP>:8080,若能看到 Spark 主页面,则表明主节点启动成功。

  2. 启动从节点

    • 在主节点上执行以下命令启动所有从节点: sbin/start-slaves.sh

    • 或者也可以在每个从节点上分别执行: sbin/start-slave.sh spark://<主节点主机名或 IP>:7077

    • 验证从节点是否成功加入集群,同样在浏览器访问 Spark 主页面,可以看到已连接的从节点信息。

六、测试 Spark 集群

  1. 提交任务测试

    • 在主节点上,进入 Spark 安装目录的 bin 文件夹,执行以下命令提交一个示例任务: ./spark-submit --master spark://<主节点主机名或 IP>:7077 examples/src/main/python/pi.py 1000

    • 观察任务执行过程和结果,以及在 Spark 主页面查看任务的执行情况,若任务正常完成,说明集群搭建成功并能够正常运行任务。

七、常见问题及解决方法

  1. 无法通过 SSH 免密登录

    • 检查主节点到从节点的 SSH 配置是否正确。在主节点执行 ssh-keygen 生成密钥对,然后将公钥复制到从节点的 ~/.ssh/authorized_keys 文件中。确保从节点的 SSH 服务正常运行,并且没有防火墙阻止 SSH 端口(默认 22)。

  2. 从节点无法连接主节点

    • 检查主节点的 Spark 配置文件中的 SPARK_MASTER_HOST 是否正确,以及从节点上的防火墙是否阻止了 7077 端口。可以尝试在主节点上执行 netstat -tunlp | grep 7077 查看主节点是否正确监听了该端口。

八、总结

通过以上步骤,我们成功搭建了一个 Spark Standalone 集群。这个集群为大数据处理提供了一个高效的计算平台。在实际应用中,我们可以根据业务需求进一步优化集群配置,如调整内存分配、增加节点数量等,以满足大规模数据处理的要求。同时,也要定期对集群进行维护和监控,确保其稳定运行。

希望这篇博客能帮助你顺利搭建起自己的 Spark 集群,开启大数据处理之旅!如果你在搭建过程中遇到任何问题,欢迎在评论区留言交流。

相关文章:

  • 天梯赛补题
  • Kafka 详解
  • Qt creator 16.0.1 语言家失效解决方法
  • 使用 VSCode 编写 Markdown 文件
  • Vscode已经打开的python项目,如何使用已经建立的虚拟环境
  • 局部最小实验--用最小成本确保方向正确
  • 信息学奥赛一本通 1505:【例 2】双调路径 | 洛谷 P5530 [BalticOI 2002] 双调路径
  • 03-谷粒商城笔记
  • MongoDB(docker版)备份还原
  • 八大排序——选择排序/堆排序
  • Android APP 爬虫操作
  • 海外产能达产,威尔高一季度营收利润双双大增
  • 【k8s】docker、k8s、虚拟机的区别以及使用场景
  • shell脚本1
  • SwiftUI 常用控件简介
  • Hi3518E官方录像例程源码流程分析(五)
  • PNG透明免抠设计素材大全26000+
  • python异步协程async调用过程图解
  • HTTP 请求头的 key 不区分大小写。
  • FlinkUDF用户自定义函数深度剖析
  • 韩国称DeepSeek未经同意将用户数据传至境外,外交部回应
  • 刘国梁总结发言数度哽咽:乒乓球是事业,更是融入血脉的信仰
  • 校友伉俪捐赠10亿元!成立复旦大学学敏高等研究院
  • 新华社经济随笔:机器人“摔倒、爬起”的背后
  • 普京呼吁乌方响应和平倡议,称将分析民用设施停火提议
  • 最高法:抢票软件为用户提供不正当优势,构成不正当竞争