温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Spark在Linux上的安装教程

发布时间:2025-10-25 05:10:00 来源:亿速云 阅读:163 作者:小樊 栏目:系统运维

Spark在Linux上的安装教程

1. 环境准备

在安装Spark前,需确保Linux系统已安装以下依赖软件:

  • Java Development Kit (JDK):Spark依赖Java环境,推荐使用JDK 8或JDK 11(避免使用更高版本导致兼容性问题)。可通过java -version命令检查是否已安装;若未安装,使用以下命令安装OpenJDK 8(Ubuntu/Debian)或JDK 8(CentOS/RHEL):
    # Ubuntu/Debian
    sudo apt update && sudo apt install openjdk-8-jdk
    # CentOS/RHEL
    sudo yum install java-1.8.0-openjdk
    
  • Apache Hadoop(可选):若需使用HDFS、YARN等Hadoop组件,需提前安装Hadoop;若仅本地测试,可跳过此步骤。
  • Python(可选):若需使用PySpark(Spark的Python API),需安装Python 3.6及以上版本。

2. 下载Spark

访问Apache Spark官方网站(https://spark.apache.org/downloads.html),选择预编译版本(Pre-built for Apache Hadoop)下载。例如,下载Spark 3.3.2版本(兼容Hadoop 3):

wget https://downloads.apache.org/spark/spark-3.3.2/spark-3.3.2-bin-hadoop3.tgz

下载完成后,可通过ls命令确认文件是否存在。

3. 解压文件

将下载的压缩包解压到指定目录(如/opt,需管理员权限):

sudo tar -xzf spark-3.3.2-bin-hadoop3.tgz -C /opt

解压后,进入Spark目录确认文件结构:

cd /opt/spark-3.3.2-bin-hadoop3
ls

应能看到bin(命令脚本)、conf(配置文件)、data(示例数据)等目录。

4. 配置环境变量

编辑用户配置文件(如~/.bashrc~/.zshrc),添加Spark相关环境变量:

nano ~/.bashrc

在文件末尾添加以下内容(根据实际路径调整):

export SPARK_HOME=/opt/spark-3.3.2-bin-hadoop3  # Spark安装目录
export PATH=$SPARK_HOME/bin:$PATH              # 将Spark命令加入PATH

保存并退出(Ctrl+OEnterCtrl+X),然后使配置生效:

source ~/.bashrc

验证环境变量是否配置成功:

echo $SPARK_HOME  # 应输出Spark安装目录

注意:若需全局配置(所有用户可用),可将环境变量添加到/etc/profile文件中。

5. 配置Spark

进入Spark的conf目录,复制模板文件并修改配置:

cd $SPARK_HOME/conf
cp spark-env.sh.template spark-env.sh  # 复制模板文件
nano spark-env.sh                      # 编辑配置文件

spark-env.sh中添加以下内容(根据实际情况修改):

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64  # Java安装目录(通过`which java`命令查找)
export SPARK_MASTER_HOST=localhost                # Master节点地址(本地测试用localhost)
export SPARK_MASTER_PORT=7077                     # Master端口(默认7077)
export SPARK_WORKER_CORES=2                       # Worker节点使用的CPU核心数
export SPARK_WORKER_MEMORY=2g                     # Worker节点分配的内存大小

保存并退出。

可选:若需配置集群模式,需复制slaves.templateslaves,并添加Worker节点的IP或主机名(每行一个):

cp slaves.template slaves
nano slaves

添加Worker节点信息(如worker1192.168.1.101),保存后退出。

6. 启动Spark

6.1 本地模式(伪分布式)

在Spark安装目录下,启动Master节点:

$SPARK_HOME/sbin/start-master.sh

启动Worker节点(连接到Master):

$SPARK_HOME/sbin/start-slave.sh spark://localhost:7077

6.2 集群模式(多节点)

在Master节点上执行以下命令,启动Master和所有Worker:

$SPARK_HOME/sbin/start-all.sh

注意:若集群中有多个Worker节点,需确保slaves文件已正确配置,并将Spark配置文件(spark-env.shslaves)分发到所有Worker节点(使用scp命令)。

7. 验证安装

7.1 查看进程

在Master节点上运行jps命令,应能看到以下进程:

jps

输出示例:

1234 Master
5678 Worker
9012 Jps

7.2 访问Web UI

打开浏览器,访问Master节点的Web管理界面(默认端口8080):

http://localhost:8080

应能看到Spark集群的概况(如Master状态、Worker节点列表、资源使用情况)。

7.3 运行Spark Shell

启动Spark的交互式Shell(Scala版本):

$SPARK_HOME/bin/spark-shell

若成功进入Scala REPL(提示符为scala>),则说明Spark安装成功。可运行以下示例代码验证:

val data = Seq(1, 2, 3, 4, 5)
val rdd = spark.sparkContext.parallelize(data)
val result = rdd.reduce(_ + _)
println(s"The sum is: $result")  // 输出:The sum is: 15

退出Shell:

:q

可选:运行PySpark(Python API):

$SPARK_HOME/bin/pyspark

进入Python交互式环境后,运行示例代码:

data = [1, 2, 3, 4, 5]
rdd = spark.sparkContext.parallelize(data)
result = rdd.reduce(lambda x, y: x + y)
print(f"The sum is: {result}")  # 输出:The sum is: 15

退出PySpark:

exit()

常见问题及解决方法

  • Java版本不兼容:若出现Unsupported major.minor version错误,需安装JDK 8或11,并确保JAVA_HOME配置正确。
  • 端口冲突:若端口8080(Master Web UI)或7077(Master通信端口)被占用,可在spark-env.sh中修改对应端口(如export SPARK_MASTER_PORT=8081)。
  • 内存不足:若出现OutOfMemoryError,可在spark-defaults.conf(位于conf目录)中增加内存配置(如spark.executor.memory 1gspark.driver.memory 1g)。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI