从新电脑开始构建FATE环境,图文并茂

注:本文很长,择需阅览,未经许可,严禁转载!转载前请征得笔者本人许可

无脑操作流程

写在前面

假期在做服务外包竞赛,和联邦学习相关,所以写本篇(系列)博客,来记录自己的学习。
感谢指导我的学长zjj,本片博客的绝大部分内容也是出自他之手,是他引领一个真正的小白到现在一个略懂一二的小白。这里附上他csdn的主页链接(但是我现在好像还不知道55,等要到了一定在这里加上!)

废话不多说,我们现在开始吧!

下载安装VMware WorkStation 16

运行文件VMware-workstation-full-16.0.exe,根据提示完成操作即可。
密钥:(这个我就不提供了,dddd,动手自己搜搜吧)

安装CentOS7(已安装的可以略过,这部分比较详细内容较多)

此处安装的是CentOS7.9的版本

  1. 在主页点击“创建新的虚拟机”。也可以点击“文件”–>“新建虚拟机”从新电脑开始构建FATE环境,图文并茂

  2. 选中“自定义(高级)”后,点击“下一步”从新电脑开始构建FATE环境,图文并茂

  3. 默认即可,点击“下一步”从新电脑开始构建FATE环境,图文并茂

  4. 选择“稍后安装操作系统”,然后点击“下一步”从新电脑开始构建FATE环境,图文并茂

  5. 客户机操作系统选择Linux,版本选择CentOS7 64位,然后下一步从新电脑开始构建FATE环境,图文并茂

  6. 给虚拟机起名字,设置保存路径,然后下一步从新电脑开始构建FATE环境,图文并茂

  7. 配置处理器,试过单个处理器,系统太慢,建议多几个,下一步从新电脑开始构建FATE环境,图文并茂

  8. 分配内存,和cpu相似,给少了也卡,下一步从新电脑开始构建FATE环境,图文并茂

  9. 一般都选择NAT,默认即可,下一步从新电脑开始构建FATE环境,图文并茂

  10. 接下来一路默认直到指定磁盘容量,给多点,给FATE预留空间,下一步从新电脑开始构建FATE环境,图文并茂

  11. 一直默认下一步,最后点击完成。从新电脑开始构建FATE环境,图文并茂

  12. 在虚拟机中,点虚拟机–>设置–>CD/DVD(IDE),选择自己的映像文件,此处选择CentOS-7-x86_64-DVD-2009.iso即可从新电脑开始构建FATE环境,图文并茂

  13. 开启虚拟机,进入系统安装,按下回车后等待从新电脑开始构建FATE环境,图文并茂

  14. 方便学习与理解,选择中文从新电脑开始构建FATE环境,图文并茂

  15. 选择键盘,添加英语从新电脑开始构建FATE环境,图文并茂从新电脑开始构建FATE环境,图文并茂

  16. 磁盘分区点进去后直接点完成

  17. 选择“网络和主机名”,打开网络即可从新电脑开始构建FATE环境,图文并茂从新电脑开始构建FATE环境,图文并茂

  18. 选择“软件选择”安装软件从新电脑开始构建FATE环境,图文并茂从新电脑开始构建FATE环境,图文并茂

  19. 点击开始安装从新电脑开始构建FATE环境,图文并茂

  20. 设置密码,创建用户,用户可以不创建从新电脑开始构建FATE环境,图文并茂

  21. 等待,完成后,乖乖重启从新电脑开始构建FATE环境,图文并茂

  22. 许可点进去,点下同意、完成就好了从新电脑开始构建FATE环境,图文并茂

  23. 接下来一直前进,直到选择地区,选择上海从新电脑开始构建FATE环境,图文并茂

  24. 接着前进、跳过等,在“关于您”用英文写,前进从新电脑开始构建FATE环境,图文并茂

  25. 密码设置,前进从新电脑开始构建FATE环境,图文并茂

  26. 安装CentOS7系统完成从新电脑开始构建FATE环境,图文并茂

安装python3(注意网络要保持连接)

  1. 右键桌面打开终端
  2. 使用root权限
su
  1. 安装python3.6的一些依赖包
rm -f /var/run/yum.pid
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

出现下图结果就说明成功从新电脑开始构建FATE环境,图文并茂

  1. 下载python3.6.5
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

从新电脑开始构建FATE环境,图文并茂

  1. 解压到指定文件夹
tar -xzvf Python-3.6.5.tgz -C /usr/local

从新电脑开始构建FATE环境,图文并茂

  1. 进入解压完的文件
cd /usr/local/Python-3.6.5

从新电脑开始构建FATE环境,图文并茂

  1. 用yum安装gcc
yum install gcc

从新电脑开始构建FATE环境,图文并茂

  1. 编译
./configure prefix=/usr/local/python3
make && make install

从新电脑开始构建FATE环境,图文并茂

  1. 配置软链接
cd /usr/bin
mv python python.backup    
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

从新电脑开始构建FATE环境,图文并茂

  1. 把下列三个文件的第一行的python改为python2
    进入文件后,输入i,表示插入,最下方就会变成INSERT,这个时候就可以修改了。
    在修改文件内容之后,进行保存,按Esc+:+wq 回车保存
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
vim /usr/bin/yum-config-manager

安装docker

  1. 用yum安装软件包
yum install -y yum-utils device-mapper-persistent-data lvm2

从新电脑开始构建FATE环境,图文并茂

  1. 安装Docker Engine-Community
    使用Docker仓库进行安装:
    在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。
    之后,可以从仓库安装和更新 Docker。
yum install -y yum-utils \
 device-mapper-persistent-data \
 lvm2
  1. 设置稳定的仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

从新电脑开始构建FATE环境,图文并茂

  1. 安装 Docker Engine-Community:
    要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装,步骤如下:
列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序:
yum list docker-ce --showduplicates | sort -r
通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1:
yum install docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io
启动并加入开机自启:
systemctl start docker
systemctl enable docker

从新电脑开始构建FATE环境,图文并茂

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 
docker run hello-world
检查版本
docker -v
docker version

从新电脑开始构建FATE环境,图文并茂

  1. 安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

从新电脑开始构建FATE环境,图文并茂

  1. 查看版本
chmod +x /usr/local/bin/docker-compose
docker-compose version

从新电脑开始构建FATE环境,图文并茂

Docker命令

指令 作用
docker images 显示镜像
docker ps -a 查看当前系统中容器的列表。
docker ps -l 会列出最后一次运行的容器,包括正在运行和已经停止的。
docker start 启动一个或多个已经被停止的容器
docker stop 停止一个运行中的容器
docker rm 删除一个或多个容器
docker exec 在运行的容器中执行命令
docker restart 重启容器
docker stop [容器名称/容器ID] 停止容器运行

下载FATE项目

  1. 下载:
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/docker_standalone_fate_1.6.0.tar.gz

从新电脑开始构建FATE环境,图文并茂
或者将docker_standalone_fate_1.6.0.tar.gz直接从本机导入(推荐)

  1. 解压:
tar -xzvf docker_standalone_fate_1.6.0.tar.gz

从新电脑开始构建FATE环境,图文并茂

  1. 部署:
cd docker_standalone_fate_1.6.0
bash install_standalone_docker.sh

从新电脑开始构建FATE环境,图文并茂

  1. 单元测试:
CONTAINER_ID=`docker ps -aqf "name=fate"`
docker exec -t -i ${CONTAINER_ID} bash
bash ./python/federatedml/test/run_test.sh
  1. Toy测试:
CONTAINER_ID=`docker ps -aqf "name=fate"`
docker exec -t -i ${CONTAINER_ID} bash
python ./examples/toy_example/run_toy_example.py 10000 10000 0

Fate命令

  1. 查看Table
python python/fate_flow/fate_flow_client.py -f table_info -n experiment -t breast_homo_host
  1. 删除table
python fate_flow_client.py -f table_delete -n $namespace -t $table_name
python fate_flow_client.py -f table_delete -j $job_id
python python/fate_flow/fate_flow_client.py -f table_delete -n experiment -t breast_homo_host

横向联邦学习样例

  1. 上传训练数据
python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/upload_data_host.json 
python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/upload_data_guest.json
  1. 提交训练任务
python  python/fate_flow/fate_flow_client.py -f submit_job -d /fate/examples/dsl/v1/homo_logistic_regression/test_homolr_train_job_dsl.json  -c /fate/examples/dsl/v1/homo_logistic_regression/test_homolr_train_job_conf.json
  1. 预测数据
python python/fate_flow/fate_flow_client.py -f submit_job -c /fate/examples/dsl/v1/homo_logistic_regression/test_predict_conf.json
记得修改test_predict_conf.json文件中的model_version: {jobid}

横向联邦学习样例

  1. 上传训练数据
python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/up_dt_guest.json -drop 1
 python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/up_dt_host.json -drop 1
  1. 训练任务
python  python/fate_flow/fate_flow_client.py -f submit_job -d /fate/examples/dsl/v1/hetero_logistic_regression/test_hetero_lr_train_job_dsl.json  -c /fate/examples/dsl/v1/hetero_logistic_regression/test_hetero_lr_train_job_conf.json
hetero_secureboost
hetero_secureboost
test_secureboost_train_dsl.json
test_secureboost_train_binary_conf.json
  1. 训练任务
python python/fate_flow/fate_flow_client.py -f submit_job -c /fate/examples/dsl/v1/hetero_logistic_regression/test_predict_conf.json
记得修改test_predict_conf.json文件中的model_version: {jobid}

写在最后

特别感谢

真正把全文打下来,我才认识到,当时zjj学长给我们制作教程的时候有多辛苦,实在是太累了!
学长的教程是以word形式展现的,为了更直观的展现、自己能够看的更方便,所以写下了这篇blog。

结尾

如果喜欢这篇文章的话,不妨点个赞收藏一下
有任何的问题都非常欢迎在评论区提出,一起讨论共同进步!
以后还会持续更新更多FATE学习进度

上一篇:第四周作业


下一篇:Linux网络中部署YUM仓库及NFS共享服务