Spark安装

发布于:2025-05-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

一、本地环境安装(单机模式)

适合开发和测试,支持 Windows、Linux、macOS。

1. 前置条件
  • Java:Java 8 或更高版本(建议 OpenJDK 11+)。

    bash

    # 检查 Java 版本
    java -version
    
  • Python(可选):PySpark 需要 Python 3.6+。
  • Scala(可选):若使用 Scala API,需安装 Scala 2.12/2.13。
2. 下载与安装
  1. 下载 Spark:从 Apache Spark 官网 下载预编译版本(如 spark-3.4.1-bin-hadoop3)。
  2. 解压文件

    bash

    tar -xzf spark-3.4.1-bin-hadoop3.tgz
    mv spark-3.4.1-bin-hadoop3 /opt/spark  # 移动到指定目录
    
  3. 配置环境变量

    bash

    # 编辑 ~/.bashrc 或 ~/.zshrc
    export SPARK_HOME=/opt/spark
    export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
    export PYSPARK_PYTHON=python3  # 指定 Python 版本
    
     

    bash

    # 使配置生效
    source ~/.bashrc
    
3. 验证安装

启动 Spark Shell:

bash

spark-shell  # Scala Shell
pyspark      # Python Shell

若成功进入交互式环境,则安装完成。

二、集群环境安装(Standalone 模式)

适合小规模集群测试,无需依赖 YARN 或 Kubernetes。

1. 集群规划
  • 1 个 Master 节点:管理集群资源和调度任务。
  • N 个 Worker 节点:执行计算任务。
2. 配置文件

在 $SPARK_HOME/conf 目录下:

  1. 复制模板配置

    bash

    cd $SPARK_HOME/conf
    cp spark-env.sh.template spark-env.sh
    cp slaves.template slaves
    
  2. 编辑 spark-env.sh

    bash

    export JAVA_HOME=/path/to/java  # Java 安装路径
    export SPARK_MASTER_HOST=master-node-ip  # Master 节点 IP
    export SPARK_WORKER_MEMORY=8g  # 每个 Worker 节点的内存
    export SPARK_WORKER_CORES=4    # 每个 Worker 节点的 CPU 核心数
    
  3. 编辑 slaves

    plaintext

    worker1-node-ip
    worker2-node-ip
    ...
    
3. 分发文件

将 Spark 目录复制到所有 Worker 节点:

bash

scp -r /opt/spark user@worker1:/opt/
scp -r /opt/spark user@worker2:/opt/
...
4. 启动集群

在 Master 节点执行:

bash

start-all.sh  # 启动 Master 和所有 Worker
# 或分开启动
start-master.sh
start-slaves.sh
5. 验证集群

访问 Web UI:http://master-node-ip:8080,查看集群状态和 Worker 节点信息。

三、在 Hadoop YARN 上运行 Spark

适合与 Hadoop 生态集成的生产环境。

1. 前置条件
  • 已安装并运行 Hadoop 集群(HDFS + YARN)。
  • Spark 版本与 Hadoop 版本兼容。
2. 配置 Spark

编辑 $SPARK_HOME/conf/spark-env.sh

bash

export HADOOP_CONF_DIR=/path/to/hadoop/etc/hadoop  # Hadoop 配置目录
3. 提交作业到 YARN

bash

# 示例:运行 Spark Pi 测试
spark-submit \
  --master yarn \
  --deploy-mode cluster \  # 或 client
  --num-executors 5 \
  --executor-memory 4g \
  $SPARK_HOME/examples/jars/spark-examples_*.jar \
  org.apache.spark.examples.SparkPi 100

四、在 Kubernetes 上运行 Spark

适合容器化部署的云原生环境。

1. 前置条件
  • 已部署 Kubernetes 集群(v1.18+)。
  • 配置了 Docker 镜像仓库。
2. 构建 Spark 镜像

bash

cd $SPARK_HOME
./bin/docker-image-tool.sh -r my-repo -t 3.4.1 build
./bin/docker-image-tool.sh -r my-repo -t 3.4.1 push  # 推送到镜像仓库
3. 提交作业到 Kubernetes

bash

spark-submit \
  --master k8s://https://kubernetes-api:6443 \
  --deploy-mode cluster \
  --name spark-pi \
  --class org.apache.spark.examples.SparkPi \
  --conf spark.kubernetes.container.image=my-repo/spark:3.4.1 \
  --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
  local:///opt/spark/examples/jars/spark-examples_*.jar \
  100

五、常见问题与解决方案

  1. Java 版本不兼容:确保 Spark 和 Hadoop 使用相同的 Java 版本。
  2. 内存不足:调整 spark.driver.memory 和 spark.executor.memory 参数。
  3. 网络问题:检查防火墙配置,确保节点间网络互通。
  4. 权限问题:确保 HDFS 目录有写入权限(如 /user/hadoop)。

六、验证安装

  1. 本地模式

    bash

    spark-shell --master local[2]
    
  2. Standalone 集群

    bash

    spark-submit --master spark://master-node-ip:7077 examples/src/main/python/pi.py
    

  3. YARN 集群

    bash

    spark-submit --master yarn --deploy-mode cluster examples/src/main/python/pi.py

网站公告

今日签到

点亮在社区的每一天
去签到