0%
277 字 1 分钟

FATE学习:运行过程中产生的数据(三) lmdb部分

综述

upload,intersection,lr 等等组件,如果有中间结果,都以lmdb的形式存储。
有关lmdb的,请参考官方文档
存储位置为:nodemanager 的 /data/projects/fate/eggroll/data/LMDB
按照outputdata{task_id} 存储各个task的结果 如:

  • output_data_20210908144140944232712_dataio_0_0
  • output_data_20210908144140944232712_hetero_lr_0_0
  • output_data_20210908144140944232712_intersection_0_0

因为以kubefate的方式部署,是分布式的。在当前情况下存在nodemanager,nodemanager-0,nodemanager-1,nodemanager-2 四个节点。分别在四个节点下查看output_data_20210908144140944232712_dataio_0_0,结果如下

  • nodemanager:data/LMDB/output_data_20210908144140944232712_dataio_0_0/52adf118107011ec90ee9ead31313d02/3/data.mdb
  • nodemanager-0:data/LMDB/output_data_20210908144140944232712_dataio_0_0/52adf118107011ec90ee9ead31313d02/0/data.mdb
  • nodemanager-1:data/LMDB/output_data_20210908144140944232712_dataio_0_0/52adf118107011ec90ee9ead31313d02/1/data.mdb
  • nodemanager-2:data/LMDB/output_data_20210908144140944232712_dataio_0_0/52adf118107011ec90ee9ead31313d02/2/data.mdb

lmdb 文件大小之谜

分别使用ls -l -h 和 du 查看data.mdb 大小时,会获得不同的结果,如下

1
2
3
4
5
(app-root) bash-4.2# ls -l -h 
total 2.5M
-rw-r--r-- 1 root root 15G Sep 7 08:49 data.mdb
(app-root) bash-4.2# du -s -h data.mdb
2.5M data.mdb

这是因为ldmb 文件是稀疏的,详情参考为什么用ls和du显示出来的文件大小有差别?

lmdb文件中的内容

以table的形式存储在lmdb中,Python 有lmdb包,使用其来进行查看。