集群环境搭建

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.csvbeauty_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-*  # 查看文件内容

 常见错误

  • 错误1ApplicationMaster启动失败
    原因:内存不足或端口冲突。
    解决:调整--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可实现资源调度隔离,适合生产环境大规模任务运行。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐