跳转到内容

Spark安装配置

来自代码酷
Admin留言 | 贡献2025年4月30日 (三) 19:55的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)

Spark安装配置[编辑 | 编辑源代码]

介绍[编辑 | 编辑源代码]

Apache Spark 是一个开源的分布式计算框架,用于大规模数据处理。它提供了高效的内存计算能力,并支持多种编程语言(如Scala、Java、Python和R)。本节将详细介绍如何在本地环境和集群环境中安装与配置Spark,帮助初学者和高级用户快速上手。

系统要求[编辑 | 编辑源代码]

在安装Spark之前,请确保满足以下条件:

  • Java:Spark需要Java 8或更高版本。
  • Python(可选):如果使用PySpark,需安装Python 3.6+。
  • Scala(可选):如果使用Scala API,需安装Scala 2.12+。
  • 至少4GB内存(推荐8GB以上)。

安装步骤[编辑 | 编辑源代码]

1. 安装Java[编辑 | 编辑源代码]

Spark依赖Java运行环境。可通过以下命令检查是否已安装Java:

  
java -version

若未安装,可通过以下方式安装(以Ubuntu为例):

  
sudo apt update  
sudo apt install openjdk-11-jdk

2. 下载Spark[编辑 | 编辑源代码]

从[Apache Spark官网](https://spark.apache.org/downloads.html)下载预编译版本(选择与Hadoop兼容的版本)。以下命令下载Spark 3.3.0:

  
wget https://archive.apache.org/dist/spark/spark-3.3.0/spark-3.3.0-bin-hadoop3.tgz  
tar -xzf spark-3.3.0-bin-hadoop3.tgz  
cd spark-3.3.0-bin-hadoop3

3. 配置环境变量[编辑 | 编辑源代码]

将Spark路径添加到`~/.bashrc`(或`~/.zshrc`):

  
export SPARK_HOME=/path/to/spark-3.3.0-bin-hadoop3  
export PATH=$PATH:$SPARK_HOME/bin

加载配置:

  
source ~/.bashrc

4. 验证安装[编辑 | 编辑源代码]

运行Spark Shell(Scala或Python版本):

  
spark-shell  # Scala版本  
pyspark      # Python版本

若成功启动,会显示Spark版本和交互式终端:

  
Welcome to  
      ____              __  
     / __/__  ___ _____/ /__  
    _\ \/ _ \/ _ `/ __/  '_/  
   /___/ .__/\_,_/_/ /_/\_\   version 3.3.0  
      /_/  

Using Scala version 2.12.15  
Type in expressions to have them evaluated.

集群模式配置[编辑 | 编辑源代码]

Spark支持多种集群管理器(如Standalone、YARN、Mesos)。以下是Standalone模式的配置步骤:

1. 启动Master节点[编辑 | 编辑源代码]

在Master节点运行:

  
$SPARK_HOME/sbin/start-master.sh

访问`http://localhost:8080`查看集群状态。

2. 启动Worker节点[编辑 | 编辑源代码]

在Worker节点运行(需替换`<master-ip>`):

  
$SPARK_HOME/sbin/start-worker.sh spark://<master-ip>:7077

3. 提交任务[编辑 | 编辑源代码]

提交一个示例任务(以Python为例):

  
spark-submit --master spark://<master-ip>:7077 examples/src/main/python/pi.py 10

配置参数优化[编辑 | 编辑源代码]

以下是一些关键配置参数(可在`$SPARK_HOME/conf/spark-defaults.conf`中设置):

  • `spark.executor.memory`:每个Executor的内存分配。
  • `spark.driver.memory`:Driver进程的内存分配。
  • `spark.serializer`:推荐使用`org.apache.spark.serializer.KryoSerializer`以提高性能。

示例配置:

  
spark.executor.memory 4g  
spark.driver.memory 2g  
spark.serializer org.apache.spark.serializer.KryoSerializer

实际案例[编辑 | 编辑源代码]

假设需统计文本文件中单词出现的频率,代码如下(Python版):

  
from pyspark.sql import SparkSession  

spark = SparkSession.builder.appName("WordCount").getOrCreate()  
text_file = spark.sparkContext.textFile("hdfs://path/to/input.txt")  
counts = text_file.flatMap(lambda line: line.split(" ")) \  
                 .map(lambda word: (word, 1)) \  
                 .reduceByKey(lambda a, b: a + b)  
counts.saveAsTextFile("hdfs://path/to/output")

常见问题[编辑 | 编辑源代码]

  • Java版本不兼容:确保使用Java 8或11。
  • 端口冲突:修改`spark-defaults.conf`中的`spark.master.port`。
  • 内存不足:调整`spark.executor.memory`和`spark.driver.memory`。

总结[编辑 | 编辑源代码]

本节详细介绍了Spark的安装与配置方法,包括单机模式和集群模式。通过优化配置和实际案例,读者可以快速掌握Spark的基础操作。下一步可学习Spark核心概念Spark SQL

graph TD A[安装Java] --> B[下载Spark] B --> C[配置环境变量] C --> D[验证安装] D --> E[集群模式配置] E --> F[提交任务]