【联邦学习】FATE安装与部署(单机部署)
FATE支持Linux或Mac操作系统,目前最新版本为FATE v1.5 (2020年10月)。FATE支持单机部署、集群部署和KubeFATE部署三种方式,其中单机部署和集群部署都属于原生(Native) 部署方式,要求开发人员配置必要的开发环境和依赖库,主要包括JDK 1.8+、Python 3.6、Python virtualenv、MySQL 5.6+、Redis 5.0.2等。注意,FATE正在不断的开发和完善中,版本不同,所依赖的环境及安装方法也会发生改变。要了解最新版本的安装步骤,可参考FATE的官方文档https://github.com/FederatedAI/DOC-CHN。
单机部署版本主要是为了帮助开发人员快速开发以及测试FATE,比较适合初级开发者使用。
FATE目前支持三种类型的单机安装,分别是:
- 使用Docker镜像安装FATE;
- 在主机中安装FATE;
- 使用Docker从源代码中构建FATE。
1) 使用Docker镜像安装FATE(推荐)
推荐使用Docker镜像安装FATE,这样可以大大降低产生问题的概率。使用Docker镜像安装FATE的过程,需要确保下面三点:
主机需要能够访问外部网络,从公共网络中拉取安装包和docker镜像。
依赖docker和docker-compose,docker建议版本为18.09,docker-compose建议版本为1.24.0,您可以使用以下命令验证docker环境:docker –version和docker-compose –version,docker的起停和其他操作请参考docker –help。
执行之前,请检查8080、9060和9080端口是否已被占用。 如果要再次执行,请使用docker命令删除以前的容器和镜像。
请按照以下步骤操作:
#获取安装包
FATE $ wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/docker_standalone-fate-1.4.0.tar.gz
FATE $tar -xzvf docker_standalone-fate-1.4.0.tar.gz
#执行部署
FATE $ cd docker_standalone-fate-1.4.0
FATE $ bash install_standalone_docker.sh
#验证和测试
FATE $ CONTAINER_ID=`docker ps -aqf "name=fate_python"`
FATE $ docker exec -t -i ${CONTAINER_ID} bash
FATE $ bash ./federatedml/test/run_test.sh
2) 在主机中安装FATE
1. 检查本地8080、9360、9380端口是否被占用。
netstat -apln|grep 8080
netstat -apln|grep 9360
netstat -apln|grep 9380
2. 下载独立版本的压缩包并解压缩。
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/standalone-fate-master-1.4.0.tar.gz
tar -xzvf standalone-fate-master-1.4.0.tar.gz
3. 进入FATE目录并执行init.sh.
cd standalone-fate-master-1.4.0
source init.sh init
4. 执行测试.
cd standalone-fate-master-1.4.0
bash ./federatedml/test/run_test.sh
3) 使用Docker从源代码构建FATE
- 主机需要能够访问外部网络,从公共网络中拉取安装包和docker镜像。
- 依赖docker和docker-compose,docker建议版本为18.09,docker-compose建议版本为1.24.0,您可以使用以下命令验证docker环境:docker –version和docker-compose –version,docker的起停和其他操作请参考docker –help。
- 执行之前,请检查8080、9060和9080端口是否已被占用。 如果要再次执行,请使用docker命令删除以前的容器和镜像。
- 大约需要40分钟才能执行完成,请耐心等待。
请按照以下步骤操作:
#获取安装包
FATE $ git clone https://github.com/FederatedAI/FATE.git
#执行部署
FATE $ cd FATE/standalone-deploy
FATE $ bash build_standalone_docker.sh init
#验证和测试
FATE $ CONTAINER_ID=`docker ps -aqf "name=fate_python"`
FATE $ docker exec -t -i ${CONTAINER_ID} bash
FATE $ bash ./federatedml/test/run_test.sh
请忽略以下提示:
- WARNING: Image for service mysql was built because it did not already exist. To rebuild this image you must use docker-compose build or docker-compose up –build.
- debconf: delaying package configuration, since apt-utils is not installed.
- WARNING: You are using pip version 19.2.1, however version 19.2.2 is available.You should consider upgrading via the ‘pip install –upgrade pip’ command.
- WARNING: Image for service xxx was built because it did not already exist. To rebuild this image you must use docker-compose build or docker-compose up –build.