-
Notifications
You must be signed in to change notification settings - Fork 47
配置说明
JarvisZeng edited this page Aug 9, 2021
·
1 revision
版本状态 | 创建人 | 完成日期 | 备注 |
---|---|---|---|
0.1 版本 | jarviszeng | 2021-01-06 | 首次发布 |
- 路径:$project_path/fate/conf/server_conf.yaml
- 说明:常用配置,一般部署时需要确定
- 注意:配置文件中未被列举如下的配置项属于系统内部参数,不建议修改
# FATEFlow的运行模式,0表示单机模式,1表示分布式模式;单机模式下使用SQLite,分布式模式下默认使用MySQL
work_mode: 1
# FATEFlow是否使用注册中心,使用注册中心的情况下,FATEFlow会注册FATEFlow Server地址以及发布的模型下载地址到注册中心以供在线系统FATEServing使用;同时也会从注册中心获取FATEServing地址
use_registry: false
# 是否启用更高安全级别的序列化模式
use_deserialize_safe_module: false
fateflow:
# 必须使用真实绑定的ip地址,避免因为多网卡/多IP引发的额外问题
# you must set real ip address, 127.0.0.1 and 0.0.0.0 is not supported
host: 127.0.0.1
http_port: 9380
grpc_port: 9360
# 支持使用rollsite/nginx/fateflow作为多方任务协调通信代理
# support rollsite/nginx/fateflow as a coordination proxy
# rollsite支持fate on eggroll的场景,仅支持grpc协议,支持P2P组网及星型组网模式
# rollsite support fate on eggroll, use grpc protocol
# nginx支持所有引擎场景,支持http与grpc协议,默认为http,支持P2P组网及星型组网模式
# nginx support fate on eggroll and fate on spark, use http or grpc protocol, default is http
# fateflow支持所有引擎场景,支持http与grpc协议,默认为http,仅支持P2P组网模式,也即只支持互相配置对端fateflow地址
# fateflow support fate on eggroll and fate on spark, use http protocol, but not support exchange network mode
# format(proxy: rollsite) means rollsite use the rollsite configuration of fate_one_eggroll and nginx use the nginx configuration of fate_one_spark
# 格式(proxy: rollsite)表示使用rollsite并使用下方fate_one_eggroll配置大类中的rollsite配置;配置nginx表示使用下方fate_one_spark配置大类中的nginx配置
# you also can customize the config like this(set fateflow of the opposite party as proxy):
# 也可以直接配置对端fateflow的地址,如下所示:
# proxy:
# name: fateflow
# host: xx
# http_port: xx
# grpc_port: xx
proxy: rollsite
# support default/http/grpc
protocol: default
# 默认的多方状态收集方式,支持PULL和PUSH;也可在作业配置指定当前作业的收集模式
# It can also be specified in the job configuration using the federated_status_collect_type parameter
default_federated_status_collect_type: PULL
fateboard:
host: 127.0.0.1
port: 8080
database:
name: fate_flow
user: fate
passwd: fate
host: 127.0.0.1
port: 3306
max_connections: 100
stale_timeout: 30
fate_on_eggroll:
clustermanager:
# eggroll nodemanager服务所在机器的CPU核数
cores_per_node: 16
# eggroll nodemanager服务的机器数量
nodes: 1
rollsite:
host: 127.0.0.1
port: 9370
fate_on_spark:
spark:
# default use SPARK_HOME environment variable
home:
cores_per_node: 20
nodes: 2
hdfs:
name_node: hdfs://fate-cluster
# default /
path_prefix:
rabbitmq:
host: 192.168.0.4
mng_port: 12345
port: 5672
user: fate
password: fate
# default conf/rabbitmq_route_table.yaml
route_table:
pulsar:
host: 192.168.0.5
port: 6650
mng_port: 8080
# message ttl in minutes
topic_ttl: 5
# default conf/pulsar_route_table.yaml
route_table:
nginx:
host: 127.0.0.1
http_port: 9300
grpc_port: 9310
# 模型导出(export model)操作默认的导出地址
model_store_address:
storage: mysql
name: model
host: 127.0.0.1
port: 3306
user: fate
passwd: fate
max_connections: 10
stale_timeout: 10
# 不使用注册中心的情况下,需要配置FATE Serving Server的地址
servings:
hosts:
- 127.0.0.1:8000
# 注册中心地址及其身份认证参数
zookeeper:
hosts:
- 127.0.0.1:2281
use_acl: true
user: fate
password: fate
- 路径:$project_path/fate/python/fate_flow/settings.py
- 说明:高级配置,一般不需要做改动
- 注意:配置文件中未被列举如下的配置项属于系统内部参数,不建议修改
# FATE Flow Server用于多方FATE Flow Server通信的grpc server的线程池大小,不设置默认等于机器CPU核数
GRPC_SERVER_MAX_WORKERS = None
# Resource
# 总资源超配百分比
TOTAL_CORES_OVERWEIGHT_PERCENT = 1 # 1 means no overweight
TOTAL_MEMORY_OVERWEIGHT_PERCENT = 1 # 1 means no overweight
# 默认的每个作业的任务并行度,可以在提交作业配置时使用job_parameters:task_parallelism配置自定义值
DEFAULT_TASK_PARALLELISM = 1
# 默认的每个作业中每个任务使用的CPU核数,可以在提交作业配置时使用job_parameters:task_cores配置自定义值
DEFAULT_TASK_CORES = 4
# 暂时不支持内存资源的调度,该配置不生效
DEFAULT_TASK_MEMORY = 0 # mb
# 一个作业最大允许申请的CPU核数占总资源数量的比例,如总资源为10,此值为0.5,则表示一个作业最多允许申请5个CPU,也即task_cores * task_parallelism <= 10 * 0.5
MAX_CORES_PERCENT_PER_JOB = 1 # 1 means total
# 对于单机引擎虚拟配置的CPU核数
STANDALONE_BACKEND_VIRTUAL_CORES_PER_NODE = 20
# Scheduling
# 发送跨参与方调度命令或者状态时,通信的超时时间
DEFAULT_REMOTE_REQUEST_TIMEOUT = 30 * 1000 # ms
# 发送跨参与方调度命令或者状态时,通信的重试次数
DEFAULT_FEDERATED_COMMAND_TRYS = 3
# 默认的作业执行超时时间,可以在提交作业配置时使用job_parameters:timeout配置自定义值
JOB_DEFAULT_TIMEOUT = 3 * 24 * 60 * 60 # s
# Switch
# 上传数据接口默认从客户端获取数据,该值可以在接口调用时使用use_local_data配置自定义值
UPLOAD_DATA_FROM_CLIENT = True
# 是否开启多方通信身份认证功能,需要配合FATE Cloud使用
CHECK_NODES_IDENTITY = False
# 是否开启资源鉴权功能,需要配合FATE Cloud使用
USE_AUTHENTICATION = False
# 默认授予的资源权限
PRIVILEGE_COMMAND_WHITELIST = []
- 路径:$project_path/fate/fateboard/conf/application.properties
- 说明:常用配置,一般部署时需要确定
- 注意:配置文件中未被列举如下的配置项属于系统内部参数,不建议修改
# 服务监听端口
server.port=8080
# fateflow地址,指fateflow的http端口地址
fateflow.url==http://127.0.0.1:9380
# db地址,同上述全局配置service_conf.yaml里面的database配置
fateboard.datasource.jdbc-url=jdbc:mysql://localhost:3306/fate_flow?characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&serverTimezone=GMT%2B8
# db配置,同上述全局配置service_conf.yaml里面的database配置
fateboard.datasource.username=
# db配置,同上述全局配置service_conf.yaml里面的database配置
fateboard.datasource.password=
server.tomcat.max-threads=1000
server.tomcat.max-connections=20000
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
# 管理员账号配置
server.board.login.username=admin
server.board.login.password=admin
- 路径:$project_path/fate/eggroll/conf/eggroll.properties
- 说明:常用配置,一般部署时需要确定
- 注意:配置文件中未被列举如下的配置项属于系统内部参数,不建议修改
[eggroll]
# core
# 连接MySQL配置,一般生产应用需要此配置
eggroll.resourcemanager.clustermanager.jdbc.driver.class.name=com.mysql.cj.jdbc.Driver
# 连接MySQL配置,一般生产应用需要此配置
eggroll.resourcemanager.clustermanager.jdbc.url=jdbc:mysql://localhost:3306/eggroll_meta?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&allowPublicKeyRetrieval=true
# 连接MySQL账户,一般生产应用需要此配置
eggroll.resourcemanager.clustermanager.jdbc.username=
# 连接MySQL密码,一般生产应用需要此配置
eggroll.resourcemanager.clustermanager.jdbc.password=
# 数据存储目录
eggroll.data.dir=data/
# 日志存储目录
eggroll.logs.dir=logs/
eggroll.resourcemanager.clustermanager.host=127.0.0.1
eggroll.resourcemanager.clustermanager.port=4670
eggroll.resourcemanager.nodemanager.port=4670
# python路径
eggroll.resourcemanager.bootstrap.egg_pair.venv=
# pythonpath, 一般需要指定eggroll的python目录以及fate的python目录
eggroll.resourcemanager.bootstrap.egg_pair.pythonpath=python
# java路径
eggroll.resourcemanager.bootstrap.egg_frame.javahome=
# java服务启动参数,无特别需要,无需配置
eggroll.resourcemanager.bootstrap.egg_frame.jvm.options=
# 多方通信时,grpc连接保持时间
eggroll.core.grpc.channel.keepalive.timeout.sec=20
# session
# 一个eggroll会话中,每个nodemanager启动的计算进程数量;若使用fate进行提交任务,则会被fate flow的默认参数所代替
eggroll.session.processors.per.node=4
# rollsite
eggroll.rollsite.coordinator=webank
eggroll.rollsite.host=127.0.0.1
eggroll.rollsite.port=9370
eggroll.rollsite.party.id=10001
eggroll.rollsite.route.table.path=conf/route_table.json
eggroll.rollsite.push.max.retry=3
eggroll.rollsite.push.long.retry=2
eggroll.rollsite.push.batches.per.stream=10
eggroll.rollsite.adapter.sendbuf.size=100000
- 路径:$project_path/fate/eggroll/conf/route_table.json
- 说明:常用配置,一般部署时需要确定
- 路由表主要分两个层级表示
- 第一级表示站点,若找不到对应的目标站点配置,则使用default
- 第二级表示服务,若找不到对应的目标服务,则使用default
- 第二级,通常将default设为本方rollsite服务地址,将fateflow设为本方fate flow server服务的grpc地址
{
"route_table":
{
"10001":
{
"default":[
{
"port": 9370,
"ip": "127.0.0.1"
}
],
"fateflow":[
{
"port": 9360,
"ip": "127.0.0.1"
}
]
},
"10002":
{
"default":[
{
"port": 9470,
"ip": "127.0.0.1"
}
]
}
},
"permission":
{
"default_allow": true
}
}