Angel机器学习框架在YARN集群上的部署与运行指南
angel 项目地址: https://gitcode.com/gh_mirrors/ang/angel
前言
Angel作为腾讯开源的分布式机器学习框架,其原生支持在YARN集群上运行,这使得它能够无缝集成到现有的大数据生态系统中。本文将详细介绍如何在YARN环境中部署和运行Angel框架,帮助开发者快速上手这一强大的机器学习工具。
环境准备
硬件要求
- 最小内存需求:6GB(1个PS+1个Worker+1个AM)
- 推荐内存配置:10GB以上以获得更好的运行体验
软件依赖
-
Hadoop集群:
- 版本要求:Hadoop 2.2.0或更高
- 必须包含正常运行的YARN和HDFS组件
-
客户端环境:
- Java 1.8或更高版本
- 能够正常提交Hadoop MR作业的环境
- Angel发布包(angel- -bin.zip)
运行流程详解
1. 数据准备阶段
对于初次使用Angel的用户,可以使用框架自带的示例数据进行测试:
# 在HDFS上创建数据目录
hadoop fs -mkdir hdfs://my-nn:54310/test/lr_data
# 上传示例数据(以Logistic Regression为例)
hadoop fs -put data/a9a/a9a_123d_train.libsvm hdfs://my-nn:54310/test/lr_data
注意:如果使用自有数据,请确保数据格式与Angel支持的格式(如libsvm)一致。
2. 任务提交阶段
使用Angel提供的提交脚本angel-submit
向YARN集群提交任务:
./angel-submit \
--angel.app.submit.class com.tencent.angel.ml.core.graphsubmit.GraphRunner \
--angel.train.data.path "hdfs://my-nn:54310/test/lr_data" \
--angel.log.path "hdfs://my-nn:54310/test/log" \
--angel.save.model.path "hdfs://my-nn:54310/test/model" \
--action.type train \
--ml.model.class.name com.tencent.angel.ml.classification.LogisticRegression \
--ml.epoch.num 10 \
--ml.data.type libsvm \
--ml.feature.index.range 1024 \
--angel.job.name LR_test \
--angel.am.memory.gb 2 \
--angel.worker.memory.gb 2 \
--angel.ps.memory.gb 2
关键参数解析
| 参数名称 | 说明 | 示例值 | |---------|------|--------| | action.type | 任务类型,支持train/predict | train | | angel.train.data.path | 训练数据HDFS路径 | hdfs://my-nn:54310/test/lr_data | | ml.model.class.name | 使用的模型类 | com.tencent.angel.ml.classification.LogisticRegression | | ml.epoch.num | 训练迭代次数 | 10 | | angel.am.memory.gb | ApplicationMaster内存(GB) | 2 | | angel.worker.memory.gb | 每个Worker内存(GB) | 2 | | angel.ps.memory.gb | 每个Parameter Server内存(GB) | 2 |
3. 任务监控与调优
任务提交后,控制台会输出监控URL,通过该URL可以:
- 查看任务整体运行状态
- 监控各个组件的资源使用情况
- 查看算法训练过程中的指标变化
- 获取详细的运行日志
性能优化建议
-
内存配置:
- 对于大型数据集,适当增加Worker和PS的内存配置
- AM内存通常2-4GB足够
-
并行度调整:
- Worker数量应与数据分片数匹配
- PS数量根据模型参数规模确定
-
数据预处理:
- 确保数据已合理分片
- 对于稀疏数据,使用libsvm格式效率更高
常见问题排查
-
资源不足错误:
- 检查YARN集群可用资源
- 适当降低内存请求或减少Worker/PS数量
-
数据读取失败:
- 确认HDFS路径正确
- 检查数据格式是否符合指定类型
-
模型保存失败:
- 检查目标路径是否有写入权限
- 确认HDFS存储空间充足
结语
通过本文的介绍,开发者应该已经掌握了在YARN集群上运行Angel机器学习框架的基本方法。Angel的强大之处在于它能够充分利用现有的大数据基础设施,同时提供高效的参数服务器架构来处理大规模机器学习任务。建议初次使用的用户从小规模数据开始,逐步熟悉框架特性和调优方法,再应用到实际生产环境中。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考