Spark集群部署与YARN模式实战
·
集群环境搭建
3节点Spark on YARN集群:
-
节点角色:
-
vm01:ResourceManager + NameNode -
vm02/vm03:NodeManager + DataNode
-
-
启动服务:
# 启动HDFS /usr/local/hadoop/sbin/start-dfs.sh # 启动YARN /usr/local/hadoop/sbin/start-yarn.sh应用程序部署
1.上传文件到集群:
-
数据文件:
beauty_prod_info.csv、beauty_prod_sales.csv -
代码:
main.py(美妆订单分析程序)
2. 修改代码适配集群:
从命令行参数读取HDFS路径:
import sys
path = sys.argv[1] # hdfs://vm01:9000/datas
df = spark.read.csv(f"{path}/beauty_prod_info.csv")
3.提交任务到YARN:
spark-submit \
--master yarn \
--deploy-mode cluster \
--driver-memory 512m \
--executor-memory 800m \
main.py hdfs://vm01:9000/datas
监控与验证
-
YARN WebUI:访问
http://<vm01-ip>:8088查看任务状态。 -
检查HDFS结果:
hdfs dfs -ls /datas/result.* # 确认结果目录
hdfs dfs -cat /datas/result.month_sale/part-* # 查看文件内容
常见错误
-
错误1:
ApplicationMaster启动失败
原因:内存不足或端口冲突。
解决:调整--driver-memory,确认8088/8042端口可用。 -
错误2:HDFS文件权限拒绝
解决:hdfs dfs -chown spark:spark /datas # 授权用户 -
错误3:依赖库缺失
解决:将JAR包(如spark-streaming-kafka-0-8-assembly_2.11.jar)放入/usr/local/spark/jars。
总结:
集群部署需关注环境一致性、资源分配和权限管理。通过YARN可实现资源调度隔离,适合生产环境大规模任务运行。
更多推荐


所有评论(0)