输入输出路径,运行模式,部署模式等相关配置

配置项名称 默认值 配置项含义
action.type train Angel task的运行方式,目前主要有两种“train”和“predict”,分别表示模型训练和使用模型进行预测
angel.output.path.deleteonexist false 当输出路径存在时,是否直接覆盖
angel.train.data.path 训练数据所在路径,该选项用于“train”运行方式下
angel.predict.data.path 预测数据所在路径,该选项用于“predict”运行方式下
angel.input.format com.tencent.angel.data.inputformat.BalanceInputFormat 训练数据文件格式,主要用于训练数据划分和读取,可支持自定义格式
angel.predict.out.path 预测结果存储路径,该选项只用于“predict”运行方式
angel.save.model.path 模型存储路径,该选项只用于“train”运行方式
angel.load.model.path 模型加载路径,该选项可用于“train”和“predict”运行方式。用于“train”时表示增量学习,即加载旧模型,利用新的训练数据在此基础上得到新的模型;用于“predict”时表示加载该模型进行预测
angel.deploy.mode YARN 部署方式,目前支持“YARN”和“LOCAL”两种方式,“LOCAL”部署方式下目前只支持启动一个Worker和PS
angel.running.mode ANGEL_PS_WORKER 运行模式,目前支持“ANGEL_PS_WORKER”和“ANGEL_PS”两种模式。“ANGEL_PS_WORKER”表示启动PS和Worker组件,即Angel自己就可以完成整个任务的计算;“ANGEL_PS”表示PS-Service,即只启动PS,向第三方计算平台(例如spark)提供PS服务
angel.job.libjars Angel计算任务需要依赖的jar包,多个jar包之间使用逗号分隔
queue Angel计算任务使用的资源池,用于Yarn模式下的资源管理
angel.job.name angel app Angel计算任务的名字
angel.app.config.file Angel支持命令行参数设置和配置文件两种方式,当使用配置文件时,可以上传一个xml格式的参数配置文件
angel.app.submit.class com.tencent.angel.utils.DefaultAppSubmitter Angel任务提交类
angel.task.user.task.class com.tencent.angel.worker.task.BaseTask Angel worker运行的task类,用户可以根据需求自定义task类,但需要继承com.tencent.angel.worker.task.BaseTask

资源与运行环境相关配置

配置项名称 默认值 配置项含义
angel.am.env Angel Master环境变量设置,形式为K1=V1,K2=V2
angel.worker.env Angel Worker环境变量设置,形式为K1=V1,K2=V2
angel.ps.env Angel PS环境变量设置,形式为K1=V1,K2=V2
angel.workergroup.number 1 需要启动的workergroup数量,目前一个workergroup仅支持一个worker,因此worker和workergroup数量相等
angel.worker.task.number 1 每个worker上运行的task数量
angel.ps.number 1 需要启动的ps数量
angel.am.cpu.vcores 1 Angel master使用的CPU vcore数量
angel.am.memory.mb 1280 Angel master使用的内存大小,以MB为单位
angel.am.memory.gb 2 Angel master使用的内存大小,以GB为单位
angel.am.java.opts Angel master进程JVM参数
angel.worker.cpu.vcores 1 一个worker使用的vcore数量
angel.worker.memory.mb 4096 一个worker使用的内存大小,以MB为单位
angel.worker.memory.gb 4 一个worker使用的内存大小,以GB为单位
angel.worker.java.opts worker进程JVM参数
angel.ps.cpu.vcores 1 一个PS使用的vcore数量
angel.ps.memory.mb 4096 一个PS使用的内存大小,以MB为单位
angel.ps.memory.gb 4 一个PS使用的内存大小,以GB为单位
angel.ps.java.opts PS进程JVM参数

RPC相关配置

配置项名称 默认值 配置项含义
angel.am.heartbeat.interval.ms 5000 Angel master向Yarn RM发送心跳的时间间隔,单位为毫秒
angel.worker.heartbeat.interval.ms 5000 Angel worker向Angel master发送心跳的时间间隔,单位为毫秒
angel.ps.heartbeat.interval.ms 5000 Angel PS向Angel master发送心跳的时间间隔,单位为毫秒
angel.netty.matrixtransfer.client.sndbuf 1048576 Netty矩阵传输客户端使用的发送缓冲区的大小,单位为字节。PSAgent和PS之间的矩阵数据传输使用的网络框架是Netty,PSAgent为客户端,所以Netty客户端位于PSAgent侧。
angel.netty.matrixtransfer.client.rcvbuf 1048576 Netty矩阵传输客户端使用的接收缓冲区的大小,单位为字节。
angel.netty.matrixtransfer.client.eventgroup.threadnum availableProcessors * 2 Netty矩阵传输客户端使用的工作线程数量(NioEventLoopGroup使用的线程数)。
angel.netty.matrixtransfer.client.usedirectbuffer true Netty矩阵传输客户端是否要使用direct buffer。true表示要使用direct buffer,false表示使用普通堆内存。
angel.netty.matrixtransfer.server.sndbuf 1048576 Netty矩阵传输服务端使用的发送缓冲区的大小,单位为字节。PSAgent和PS之间的矩阵数据传输使用的网络框架是Netty,PS为服务端。
angel.netty.matrixtransfer.server.rcvbuf 1048576 Netty矩阵传输服务端使用的接收缓冲区的大小,单位为字节。
angel.netty.matrixtransfer.server.eventgroup.threadnum availableProcessors * 2 Netty矩阵传输服务端使用的工作线程数量(NioEventLoopGroup使用的线程数)。
angel.netty.matrixtransfer.server.usedirectbuffer true Netty矩阵传输服务端是否要使用direct buffer。true表示要使用direct buffer,false表示使用普通堆内存。
angel.netty.matrixtransfer.max.message.size 1073741824 Netty矩阵传输支持的最大的单个消息的大小,单位为字节,默认为100M。
angel.matrixtransfer.max.requestnum.perserver 16 PSAgent能够最多同时向一个PS发起多少个请求,该参数用于流量控制,避免同时向一个PS发起太多请求而导致出流量占满,进而导致发往其他PS的请求等待。
angel.matrixtransfer.max.requestnum 1024 PSAgent能够最多同时向所有PS发起多少个请求,该参数用于流量控制。

系统可用性相关配置

配置项名称 默认值 配置项含义
angel.am.max-attempts 2 Master最大运行尝试次数。
angel.worker.max-attempts 4 Worker最大运行尝试次数。
angel.ps.max-attempts 4 PS最大运行尝试次数。
angel.am.appstate.timeout.ms 600000 Application处于临时状态最大允许时间,单位为毫秒。临时状态指的是除了RUNNING和COMMITTING外的其他状态,如果处于临时状态的时间超过了限制,Application将会退出
angel.am.write.state.interval.ms 10000 Master将作业状态信息写入hdfs时间间隔,单位为毫秒。
angel.worker.heartbeat.interval.ms 5000 Worker向Master发送的心跳间隔时间,单位为毫秒。
angel.worker.heartbeat.timeout.ms 600000 Worker向Master发送的心跳超时时间,单位为毫秒。如果一个Worker超过该时间没有向Master上报心跳,将会被Master判定为异常。
angel.ps.heartbeat.interval.ms 5000 PS向Master发送的心跳间隔时间,单位为毫秒。
angel.ps.heartbeat.timeout.ms 600000 PS向Master发送的心跳超时时间,单位为毫秒。如果一个PS超过该时间没有向Master上报心跳,将会被Master判定为异常。
angel.ps.backup.interval.ms 300000 PS将所承载的参数写入hdfs间隔时间,单位为毫秒。PS会每隔一段时间将存储在其上的矩阵参数写入hdfs,用在PS宕机恢复。
angel.matrixtransfer.retry.interval.ms 10000 失败的矩阵传输请求重试时间间隔,单位为毫秒。
angel.matrixtransfer.request.timeout.ms 30000 矩阵传输请求超时时间,单位为毫秒。

日志相关配置

配置项名称 默认值 配置项含义
angel.am.log.level INFO Master日志输出级别,可配置的有DEBUG,INFO,WARN和ERROR
angel.worker.log.level INFO Worker日志输出级别,可配置的有DEBUG,INFO,WARN和ERROR
angel.ps.log.level INFO PS日志输出级别,可配置的有DEBUG,INFO,WARN和ERROR

缓存相关配置

配置项名称 默认值 配置项含义
angel.psagent.cache.sync.timeinterval.ms 200 PSAgent侧缓存更新时间间隔,单位为毫秒。为了实现矩阵参数预取功能,在PSAgent侧维护了一个矩阵参数的缓存,该缓存每隔一段时间和PS侧数据进行同步。
angel.task.data.storage.level memory_disk Task预处理过的训练数据存储方式,可选的有memory,memory_disk和disk。memory表示将所有训练数据存储在内存中,如果内存足够大,建议使用这种方式;disk表示将所有训练数据存储在本地磁盘上;memory_disk则介于两者之间,可以支持一部分放在内存中,其余的放在本地磁盘。
angel.task.memory.storage.max.mb 1000 每一个task运行使用多大内存来存放训练数据,单位为MB。只有当storage level配置为memory_disk时该选项才起作用。