• Angel On Yarn运行
    • 1. 运行环境准备
    • 2. Angel任务运行示例

    Angel On Yarn运行

    由于业界很多公司的大数据平台,都是基于Yarn搭建,所以Angel目前的分布式运行是基于Yarn,方便用户复用现网环境,而无需任何修改。

    鉴于Yarn的搭建步骤和机器要求,不建议在小机器上,进行尝试该运行。如果一定要运行,最少需要6G的内存(1ps+1worker+1am),最好有10G的内存,比较宽裕。

    1. 运行环境准备

    Angel的分布式Yarn运行模式需要的环境,其实也非常简单:

    • 一个可以正常运行Hadoop集群,包括Yarn和HDFS

      • Hadoop >= 2.2.0
    • 一个用于提交Angel任务的客户端Gateway

      • Java >= 1.8
      • 可以正常提交Hadoop的MR作业
      • Angel发布包:angel-\-bin.zip

    2. Angel任务运行示例

    以最简单的LogisticRegression为例:

    1. 上传数据(如果用户有自己的数据可以略过本步,但是要确认数据格式一致)

      • 找到发布包的data目录下的LogisticRegression测试数据
      • 在hdfs上新建lr训练数据目录

        1. hadoop fs -mkdir hdfs://my-nn:54310/test/lr_data
      • 将数据文件上传到指定目录下

        1. hadoop fs -put data/a9a/a9a_123d_train.libsvm hdfs://my-nn:54310/test/lr_data
    2. 提交任务

      • 在发布包的bin目录下有Angel的提交脚本angel-submit,使用它将任务提交到Hadoop集群

        请务必注意提交集群中是否有充足的资源,如果按照下面的参数配置,启动任务至少需要6GB内存和3个vcore

        1. ./angel-submit \
        2. --angel.app.submit.class com.tencent.angel.ml.core.graphsubmit.GraphRunner \
        3. --angel.train.data.path "hdfs://my-nn:54310/test/lr_data" \
        4. --angel.log.path "hdfs://my-nn:54310/test/log" \
        5. --angel.save.model.path "hdfs://my-nn:54310/test/model" \
        6. --action.type train \
        7. --ml.model.class.name com.tencent.angel.ml.classification.LogisticRegression \
        8. --ml.epoch.num 10 \
        9. --ml.data.type libsvm \
        10. --ml.feature.index.range 1024 \
        11. --angel.job.name LR_test \
        12. --angel.am.memory.gb 2 \
        13. --angel.worker.memory.gb 2 \
        14. --angel.ps.memory.gb 2

        参数含义如下

    1. | 名称 | 含义 |
    2. | --- | --- |
    3. | action.type | 计算类型,目前支持"train""predict"两种,分别表示模型训练和预测 |
    4. | angel.app.submit.class | 算法运行类|
    5. | angel.train.data.path | 训练数据输入路径 |
    6. | angel.log.path | 算法指标日志输出路径 |
    7. | angel.save.model.path | 模型保存路径 |
    8. | ml.model.class.name | 模型类型 |
    9. | ml.epoch.num | epoch 个数 |
    10. | ml.data.type | 训练数据格式,默认支持两种格式libsvmdummy |
    11. | ml.feature.index.range | 模型index范围 |
    12. | angel.job.name | 任务名|
    13. | angel.am.memory.gb | Master所需内存大小|
    14. | angel.worker.memory.gb | 一个Worker所需内存大小|
    15. | angel.ps.memory.gb | 一个PS所需内存大小|
    16. 为了方便用户,Ange设置有许多参数可供调整,可以参考
    17. * 系统参数: [主要系统配置]($deploy-config_details.md)
    18. * 算法参数: [Logistic Regression]($algo-lr_on_angel.md)
    1. 观察进度
    1. 任务提交之后,会在控制台打印出任务运行信息,如URL和迭代进度等,如下图所示:
    2. ![][1]
    3. 打开URL信息就可以看到Angel任务每一个组件的详细运行信息和算法相关日志:
    4. ![][2]
    5. 目前的监控页面有点简陋,后续会进一步优化,围绕PS的本质,提高美观程度和用户可用度