概念介绍
联邦学习:(待补充)
fate介绍:(待补充)
kubefate介绍:分布式版fate
官网:https://fate.fedai.org/
github:https://github.com/FederatedAI/
安装
背景
- 本文采用docker-compose安装。
- 安装机器为阿里云,相关加速配置都为阿里云中的配置。
- 阿里云机器之间可以内网连接。
- 实例开通公网权限,可以访问开通的接口。
- 在安装包中有相关文档,遇事不决可以参考。README.md(英文版),README_zh.md(中文版)
- 机器分为两类,操作机与安装机。操作机用于运行安装脚本,给集群内机器安装相关组件;安装机为实际运行kubefate的机器
- 以下端口需要用到,请提前在机器上将其保留:8000、8350、8059、20000、8080、9360、9370、4670、4671、3306
- 本文使用root部署,略显不规范。建议使用普通用户
环境
本次安装版本为1.10,需要的背景如下
- 3台主机(物理机或者虚拟机,都是Centos7系统)。本文中安装使用3台机器(1host+2guest),也可以安装2台机器(1host+1guest)。机器配置推荐为8核16G内存。过于简陋的配置容易造成子服务启动异常。
- 所有主机安装Docker 版本 : 18+。Centos安装相关命令如下
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum -y install docker-ce
- 安装Docker-Compose,版本: 1.24+。安装命令如下
curl -SL https://github.com/docker/compose/releases/download/v2.1.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
安装步骤
如未特殊说明,以下都是在操作机上进行。操作机最好能提前配置免密登录到安装机。配置方法
ssh-keygen
ssh-copy-id root@IP1
ssh-copy-id root@IP2
ssh-copy-id root@IP3
- 下载部署压缩包。 releases页面,从中选择1.10.0版本
- 压缩包,可以得到一个目录
docker-deploy
。 - 镜像加速(可选)。由于需要下载的总镜像约18G,有必要在下载中加速。可以使用阿里云自带的加速方案,也可以配置163的hub。方法为修改docker-deploy下.env文件,修改
RegistryURI
参数:RegistryURI=hub.c.163.com
- 编辑/docker-deploy/parties.conf,修改资源信息
#!/bin/bashuser=root dir=/data/projects/fate party_list=(10000 9999 9998) party_ip_list=(IP1 IP2 IP3) serving_ip_list=(IP1 IP2 IP3)# Engines: # Computing : Eggroll, Spark, Spark_local computing=Eggroll # Federation: Eggroll(computing: Eggroll), Pulsar/RabbitMQ(computing: Spark/Spark_local) federation=Eggroll # Storage: Eggroll(computing: Eggroll), HDFS(computing: Spark), LocalFS(computing: Spark_local) storage=Eggroll # Algorithm: Basic, NN algorithm=Basic # Device: IPCL, CPU device=IPCL# spark and eggroll compute_core=4# default exchangeip=# modify if you are going to use an external db mysql_ip=mysql mysql_user=fate mysql_password=fate_dev mysql_db=fate_flowname_node=hdfs://namenode:9000# Define fateboard login information fateboard_username=admin fateboard_password=admin# Define serving admin login information serving_admin_username=admin serving_admin_password=admin# Define notebook login information notebook_hashed_password=
- 执行脚本
第二条命令初次执行时会耗时很长,因为需要下载镜像。需要耐心等待。bash ./generate_config.sh # 生成部署文件 bash ./docker_deploy.sh all # 在各安装机上部署FATE
安装脚本本质上是将docker-compose脚本放到远程安装机并拉起。
执行完成后可以登录到安装机上敲docker ps
查看是否有8个以上容器在运行,如果是就表示安装成功。 - 验证部署。登录IP1机器进行验证
如果运行没有报错则表示安装成功。$ docker exec -it confs-10000_client_1 bash $ flow test toy --guest-party-id 10000 --host-party-id 9999
- 登录fateboard查看状态。假设IP1的外网地址为IP1-OUT,可以登录其外网地址
http://IP1-OUT:8080
,收入用户名密码admin/admin,点击右上角JOBS,可以看到toy任务运行结果