目录
1. 说明
使用虚拟机VMware进行实验,实验过程中随时拍摄快照,节约重装时间。
项目 | Value |
---|---|
虚拟机配置 | 内存4G + 硬盘80G |
操作系统 | Ubuntu18.04 |
用户 | root; fate(安装系统时创建) |
2. 安装前
虚拟机裸机安装Ubuntu系统后:
3. 在主机中安装FATE(使用已编译的安装包)
- FATE官方单机部署教程
- 单机版提供3种部署方式,这里选择在主机中安装FATE(官方建议使用Docker镜像,但不熟悉Docker的人容易找不到FATE路径,同时教程较少,完成部署后进行后续开发困难)
3.1 端口检查
检查端口8080、9360、9380是否被占用
$ netstat -apln|grep 8080
$ netstat -apln|grep 9360
$ netstat -apln|grep 9380
3.2 获取安装包
- 这里选择安装的是FATE1.6.0版本,当前最新版本1.7.1,文档较少,暂时没跑通
$ wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/standalone_fate_master_1.6.0.tar.gz
$ tar -xzvf standalone_fate_master_1.6.0.tar.gz
3.3 安装
- 进入解压后的目录并使用init.sh进行安装
- 该脚本将自动完成:
- 安装必要的OS依赖、py36环境、pypi依赖、jdk环境、fate client
- 配置FATE环境变量、fateflow、fateboard
$ cd standalone_fate_master_1.6.0
$ sudo gedit init.sh # 修改init.sh文件
这里修改init.sh文件中的sh命令为bash(官方文档使用的是sh,这里系统不同改用bash)
否则会出现问题:service.sh: [[ not found
$ bash init.sh init
- 看到图中红框就行了,底下仍然出现了service.sh: [[ not found,但这时似乎没有影响。
3.4 启动
$ bash init.sh status
$ bash init.sh start
3.5 测试
-
加载环境变量
$ source bin/init_env.sh
-
Toy测试
$ python ./examples/toy_example/run_toy_example.py 10000 10000 0
- 如果成功,屏幕显示类似下方的语句:
success to calculate secure_sum, it is 2000.0000000000002
- 如果成功,屏幕显示类似下方的语句:
-
单元测试
$ bash ./python/federatedml/test/run_test.sh
- 如果成功,屏幕显示类似下方的语句:
there are 0 failed test
- 如果成功,屏幕显示类似下方的语句:
3.6 FATE Board
- 本机通过浏览器访问URL:IP:8080或虚拟机通过浏览器访问URL:localhost:8080能够进入FATE Board界面
4. 安装FATE-Client、FATE-Test、FATE-Flow、jupyter notebook
4.1 FATE-Client、FATE-Test
- 为方便使用FATE,安装便捷的交互工具FATE-Client以及测试工具FATE-Test.
- 请在环境内使用以下指令安装:
$ python -m pip install fate-client $ python -m pip install fate-test
4.2 FATE-Flow
- 安装FATE-Client的过程会安装好FATE-Flow,这个工具是联邦学习端到端流水线的多方联邦任务安全调度平台,是执行任务的核心
- 初始化
$ flow init --ip 127.0.0.1 --port 9380
- 注意:FATE集群版的FATE-Flow的初始化命令(单机版中不存在该.yaml文件)
flow init -c /data/projects/fate/conf/service_conf.yaml
- 注意:FATE集群版的FATE-Flow的初始化命令(单机版中不存在该.yaml文件)
4.3 FATE中的Jupyter Notebook
$ pip install notebook fate-client
启动 Juypter Notebook 服务并监听 20000 端口,待服务启动完毕后则可以通过的方式 "IP:Port" 的方式访问 Notebook
$ jupyter notebook --ip=0.0.0.0 --port=20000 --allow-root --debug --no-browser --NotebookApp.token= ''--NotebookApp.password= ''
- 保持终端运行的状态,可以通过"IP:Port"的方式访问Juypter Notebook,此时notebook中的目录,就是Ubuntu中fate安装目录下的内容(按本教程的安装过程,fate根目录位于/home/fate/standalone_fate_master_1.6.0/)