Linux 服务器如何配置 Spark?
Linux服务器上Spark集群配置完全指南
Apache Spark作为当前最流行的大数据处理框架之一,在Linux服务器上的正确配置对于发挥其最佳性能至关重要。本文将详细介绍从环境准备到集群调优的全过程。
一、环境准备
1.1 硬件要求
建议配置:
- 主节点:8核CPU/16GB内存/100GB存储
- 工作节点:4核CPU/8GB内存/50GB存储
- 网络:千兆以太网
1.2 软件依赖
必需组件:
- Java 8或11(推荐OpenJDK)
- Python 3.6+(可选)
- SSH免密登录配置
# 检查Java版本
java -version
# 安装OpenJDK
sudo apt install openjdk-11-jdk
二、Spark安装与配置
2.1 下载与解压
从官网下载预编译包:
wget https://downloads.apache.org/spark/spark-3.3.1/spark-3.3.1-bin-hadoop3.tgz
tar -xzf spark-3.3.1-bin-hadoop3.tgz
cd spark-3.3.1-bin-hadoop3
2.2 基础配置
修改conf/spark-env.sh:
export SPARK_MASTER_HOST='your_master_ip'
export SPARK_WORKER_CORES=4
export SPARK_WORKER_MEMORY=8g
2.3 集群模式选择
模式 | 适用场景 |
---|---|
Standalone | 快速测试/小型集群 |
YARN | Hadoop生态集成 |
Kubernetes | 云原生环境 |
三、集群部署实战
3.1 启动Master节点
./sbin/start-master.sh
# 查看Web UI:http://master_ip:8080
3.2 添加Worker节点
在各工作节点执行:
./sbin/start-worker.sh spark://master_ip:7077
3.3 验证集群状态
./bin/spark-submit --master spark://master_ip:7077 examples/src/main/python/pi.py 100
四、性能优化技巧
- 内存分配:设置spark.executor.memoryOverhead避免OOM
- 并行度调优:spark.default.parallelism=集群总核数×2-3
- 数据本地化:合理设置spark.locality.wait
高级参数示例:
spark.executor.extraJavaOptions=-XX:+UseG1GC
spark.serializer=org.apache.spark.serializer.KryoSerializer
五、常见问题解决
问题1:Worker节点无法连接Master
解决方案:检查防火墙设置和SPARK_MASTER_HOST配置
问题2:作业执行缓慢
解决方案:调整分区数并检查数据倾斜
扩展资源
- 官方文档:https://spark.apache.org/docs/latest/
- 性能调优白皮书:https://databricks.com/