欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 13:32:31
...

综述

upload,intersection,lr 等等组件,如果有中间结果,都以lmdb的形式存储。
有关lmdb的,请参考官方文档
存储位置为:nodemanager 的 /data/projects/fate/eggroll/data/LMDB
按照output_data_{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 大小时,会获得不同的结果,如下

(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包,使用其来进行查看。