虚拟机安装spark
环境准备
在虚拟机中安装Spark前,需确保基础环境配置完善,选择合适的虚拟机软件(如VMware Workstation或VirtualBox),并创建一台Linux虚拟机(推荐Ubuntu 20.04 LTS,因其对大数据生态支持较好),虚拟机配置建议至少分配4GB内存、2核CPU及30GB硬盘空间,以保证Spark运行流畅。

安装必要的依赖工具,通过终端执行以下命令更新系统并安装Java(Spark依赖Java环境):
sudo apt update sudo apt install openjdk-8-jdk -y
安装完成后,验证Java版本:
java -version
确保输出显示Java 8(如OpenJDK 1.8),还需安装SSH服务,方便后续远程管理:
sudo apt install openssh-server -y
下载并配置Spark
-
下载Spark
访问Spark官方镜像(https://spark.apache.org/downloads/),选择预编译的二进制包(建议选择与Hadoop版本兼容的稳定版,如3.3.1),通过wget命令下载:wget https://archive.apache.org/dist/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz
下载后解压至指定目录(如
/usr/local):sudo tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /usr/local/ sudo mv /usr/local/spark-3.3.1-bin-hadoop3 /usr/local/spark
-
配置环境变量
编辑~/.bashrc文件,添加Spark路径:nano ~/.bashrc
在文件末尾添加以下内容:
export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
保存后执行
source ~/.bashrc使配置生效。 -
验证Spark安装
执行以下命令检查Spark是否正确安装:spark-shell
若成功进入Spark Shell,显示类似“Spark context available as sc”的提示,则安装成功。

Spark核心配置
Spark的运行依赖于核心配置文件,需根据需求调整参数,主要配置文件位于$SPARK_HOME/conf目录下:
-
spark-env.sh
复制模板文件并编辑:cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh nano $SPARK_HOME/conf/spark-env.sh
添加以下关键配置:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export SPARK_MASTER_IP=192.168.1.100 # 虚拟机IP地址 export SPARK_MASTER_PORT=7077 export SPARK_WORKER_CORES=2 export SPARK_WORKER_MEMORY=4g
-
slaves(或workers)
若配置集群模式,需指定工作节点:echo "localhost" > $SPARK_HOME/conf/slaves
-
log4j.properties
调整日志级别以减少输出信息:cp $SPARK_HOME/conf/log4j-template.properties $SPARK_HOME/conf/log4j.properties nano $SPARK_HOME/conf/log4j.properties
将
log4j.rootCategory=INFO改为WARN。
运行模式与测试
Spark支持多种运行模式,本地模式适合开发测试,而集群模式适用于生产环境。
-
本地模式
直接提交任务:$SPARK_HOME/bin/run-example SparkPi 10
输出结果应包含“Pi is roughly 3.14…”。
-
集群模式
启动Master和Worker节点:
$SPARK_HOME/sbin/start-master.sh $SPARK_HOME/sbin/start-worker.sh spark://192.168.1.100:7077
通过浏览器访问
http://虚拟机IP:8080查看集群状态。 -
提交应用测试
以WordCount为例,准备一个文本文件input.txt,执行:$SPARK_HOME/bin/spark-submit --class org.apache.spark.examples.SparkWordCount \ --master spark://192.168.1.100:7077 \ $SPARK_HOME/examples/jars/spark-examples_2.12-3.3.1.jar input.txt output
检查
output目录结果是否正确。
常见问题与优化
-
内存不足
若出现OutOfMemoryError,需调整spark.executor.memory参数,或在spark-env.sh中设置export SPARK_DRIVER_MEMORY=2g。 -
网络问题
确保虚拟机与主机网络互通,关闭防火墙或开放端口:sudo ufw disable
-
性能优化
- 使用Kryo序列化:在
spark-defaults.conf中添加spark.serializer=org.apache.spark.serializer.KryoSerializer。 - 调整并行度:根据集群核心数设置
spark.default.parallelism。
- 使用Kryo序列化:在
通过虚拟机安装Spark是学习大数据处理的入门步骤,从环境准备到配置优化,每一步都需细致操作,建议初学者先从本地模式熟悉API,再逐步过渡到集群模式,结合实际需求调整参数,可充分发挥Spark的分布式计算能力。
关键配置参数表
| 参数名 | 作用 | 示例值 |
|——–|——|——–|
| SPARK_MASTER_IP | Master节点IP | 192.168.1.100 |
| SPARK_WORKER_CORES | Worker核心数 | 2 |
| SPARK_WORKER_MEMORY | Worker内存 | 4g |
| spark.executor.memory | 单Executor内存 | 2g |
| spark.default.parallelism | 默认并行度 | 4 |
通过以上步骤,即可在虚拟机中完成Spark的搭建与基础应用,为后续大数据分析奠定基础。

















