由于业界很多公司的大数据平台,都是基于Yarn搭建,所以Angel目前的分布式运行是基于Yarn,方便用户复用现网环境,而无需任何修改。
鉴于Yarn的搭建步骤和机器要求,不建议在小机器上,进行尝试该运行。如果一定要运行,最少需要6G的内存(1ps+1worker+1am),最好有10G的内存,比较宽裕。
Angel的分布式Yarn运行模式需要的环境,其实也非常简单:
以最简单的LogisticRegression为例:
上传数据(如果用户有自己的数据可以略过本步,但是要确认数据格式一致)
在hdfs上新建lr训练数据目录
hadoop fs -mkdir hdfs://my-nn:54310/test/lr_data
将数据文件上传到指定目录下
hadoop fs -put data/exampledata/LRLocalExampleData/a9a.train hdfs://my-nn:54310/test/lr_data
提交任务
请务必注意提交集群中是否有充足的资源,如果按照下面的参数配置,启动任务至少需要6GB内存和3个vcore
```bsh
./angel-submit \
--angel.app.submit.class "com.tencent.angel.ml.classification.lr.LRRunner"\
--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.data.type libsvm \
--ml.feature.num 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”两种,分别表示模型训练和预测 |
angel.app.submit.class | 算法运行类,每个算法都对应一个运行类 |
angel.train.data.path | 训练数据输入路径 |
angel.log.path | 算法指标日志输出路径 |
angel.save.model.path | 模型保存路径 |
ml.data.type | 训练数据格式,默认支持两种格式libsvm和dummy |
ml.feature.num | 模型维度 |
angel.job.name | 任务名 |
angel.am.memory.gb | Master所需内存大小 |
angel.worker.memory.gb | 一个Worker所需内存大小 |
angel.ps.memory.gb | 一个PS所需内存大小 |
为了方便用户,Ange设置有许多参数可供调整,可以参考
观察进度
任务提交之后,会在控制台打印出任务运行信息,如URL和迭代进度等,如下图所示:
打开URL信息就可以看到Angel任务每一个组件的详细运行信息和算法相关日志:
目前的监控页面有点简陋,后续会进一步优化,围绕PS的本质,提高美观程度和用户可用度