6.4.4 FATE集群部署验证
在使用三种方式部署完成后,需要进行通信来验证FATE集群是否成功安装,FATE提供了run_test、toy_example和min_test_task。其中,run_test是单元,用于本地环境安装是否正确、完整。toy_example利用两方求和两方Party的联通性及各组件是否可用。min_test_task从特征选择、特征工程、模型训练到模型预测模拟一个完整的联合建模过程来进行。
1. run_test单元
在Guest方和Host方执行以下命令进行单元:
CONTAINER_ID=`docker ps -aqf "name=fate"`
docker exec -t -i ${CONTAINER_ID} bash
bash ./python/federatedml/test/run_test.sh
若屏幕显示以下内容,则表示成功:
there are 0 failed test
2. toy_example
只需要到Guest方的/data/projects/fate/python/examples/toy_example/目录下执行:
python run_toy_example.py ${guest_party_id} ${host_party_id} ${work_mode}
其中,work_mode为0表示单机版本,为1表示集群版本。我们的实验节点是采用集群方式部署的。一旦任务发起,服务器上就可能会返回以下信息。
(1)Party ID错误或者通信模块错误。
在任务发起后,若屏幕上没有立刻输出信息,则通信可能失败,可能是guest_party_id和host_party_id错误,也可能是通信模块安装失败。
(2)EggRoll或通信错误。
如果屏幕上输出jobid,并且显示“job running time exceed”,那么检查通信或者Host方的EggRoll日志。否则,检查Guest方的EggRoll日志。
(3)任务成功,日志显示成功。
3. min_test_task
本案例主要数据上传、求交集、算法。
在Host方中执行:
sh run.sh host ${task}
task可选择fast或normal,fast将使用FATE提供的breast数据集,normal将使用credit数据集。在执行该命令后,得到上传数据的表名和表空间,需要将其告知Guest方。
在Guest方中执行:
sh run.sh guest ${task} ${host_table_name} ${host_namespace}
需要注意以下三点:
(1)在用All-in-one方式执行命令前需要先初始化环境变量:
source /data/projects/fate/init_env.sh
(2)在Docker环境下进入python容器的命令:
docker exec -it ${容器名} bash
(3)在Kubernetes环境下进入python容器的命令:
kubectl exec -it ${容器名} -n ${namespace} --/bin/bash