Spark快速搭建指南

发布于:2024-05-08 ⋅ 阅读:(29) ⋅ 点赞:(0)

Spark快速搭建指南

前言

作为一款开源的大数据处理工具,Spark凭借其快速、易用的特性,成为了数据处理和分析领域的佼佼者。通过这个指南,你将能够在几分钟内完成Spark的安装和配置,并开始进行数据分析。

环境

  • 操作系统:Ubuntu 22.04 LTS
  • Spark版本:3.4.1
  • Hadoop版本:3.3.6
  • Java版本:OpenJDK 11
  • Scala版本:2.12.18

准备工作

在开始安装Spark之前,需要先安装好Java和Scala。以下是安装步骤:

安装Java

确保你的系统上安装了Java 11,可以使用以下命令安装:

sudo apt update
sudo apt install -y openjdk-11-jdk

检查安装情况:

java -version

应该看到类似的输出:

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode)

安装Scala

下载并安装Scala:

wget https://downloads.lightbend.com/scala/2.12.18/scala-2.12.18.deb
sudo dpkg -i scala-2.12.18.deb
sudo apt-get update
sudo apt-get install scala

检查Scala版本:

scala -version

应该输出类似的内容:

Scala code runner version 2.12.18 -- Copyright 2002-2019, LAMP/EPFL

下载并安装Spark

接下来,让我们下载并安装Spark。

步骤1:下载Spark

你可以直接从Apache Spark官网下载:

wget https://dlcdn.apache.org/spark/spark-3.4.1/spark-3.4.1-bin-hadoop3.tgz

步骤2:解压缩并移动Spark

解压缩下载的文件并将其移动到/usr/local目录:

tar -xzvf spark-3.4.1-bin-hadoop3.tgz
sudo mv spark-3.4.1-bin-hadoop3 /usr/local/spark

步骤3:配置环境变量

为了方便使用Spark命令行工具,编辑~/.bashrc并添加以下行:

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH
export PYSPARK_PYTHON=python3

然后运行以下命令使更改生效:

source ~/.bashrc

步骤4:配置Spark

Spark已经开箱即用,但可以根据需求调整配置。

配置spark-env.sh

复制/usr/local/spark/conf/spark-env.sh.templatespark-env.sh并编辑:

cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh

添加以下内容:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export SPARK_MASTER_HOST='localhost'
配置log4j.properties

为了方便调试,可以将日志级别设置为INFO或更低。复制/usr/local/spark/conf/log4j2.properties.templatelog4j2.properties并编辑:

cp /usr/local/spark/conf/log4j2.properties.template /usr/local/spark/conf/log4j2.properties

确保以下内容被取消注释并设置为INFO

rootLogger.level = INFO

启动Spark

配置完成后,可以通过两种方式启动Spark。

使用Spark Shell

spark-shell

你将进入Scala交互式命令行环境,输出类似以下信息:

Spark context Web UI available at http://localhost:4040
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 3.4.1
      /_/

使用PySpark

pyspark

你将进入Python交互式命令行环境,输出类似以下信息:

Spark context Web UI available at http://localhost:4040
Spark session available as 'spark'.
Python 3.10.12 (main, Jul 21 2023, 15:43:22) [GCC 11.3.0]
Type "help", "copyright", "credits" or "license" for more information.

启动Standalone Cluster

你还可以启动一个Standalone集群:

启动Master节点
start-master.sh

Master节点的Web界面可通过http://localhost:8080/访问。

启动Worker节点
start-worker.sh spark://localhost:7077

使用Spark进行简单数据处理

现在,你可以用Spark进行一些简单的数据处理任务了。

Scala示例

val data = spark.read.textFile("README.md")
val wordCounts = data.flatMap(line => line.split(" ")).groupBy("value").count()
wordCounts.show()

Python示例

data = spark.read.text("README.md")
word_counts = data.selectExpr("explode(split(value, ' ')) as word").groupBy("word").count()
word_counts.show()

常见问题及注意事项

  • Java版本兼容问题:确保JAVA_HOME路径正确并且与spark-env.sh中的路径一致。
  • 端口冲突问题:如果出现端口被占用的情况,请检查是否有其他服务占用了Spark的默认端口。
  • 网络问题:如果是分布式集群,确保各节点之间的网络通信畅通。