python-weed的seaweedfs使用指南

今天公司需要下载几百万的图片数据,由于oss太过昂贵,故此被通知要使用seaweedfs来存储。seaweedfs的简介、搭建和配置这个就不讲了,记录一下使用过程。

因为最近使用python居多,所以查了下seaweedfs的python库,看了下就选择了python-weed库,安装后就可以使用,根据源码中提供的testweed.py,可以很容易就调用python-weed的接口。看了下源码,然后封装了下get和put接口,这里因为主要是下载图片,所以put接口扩展了使用resposne.content的功能(其实就是将response.content做一下io.Bytes的转换后调用crud_create接口)。然后,因为要对接口和批量下载进行测试,所以seaweedfs中存了很多无效数据,需要清理一下。

下面就记录一下批量清除seaweedfs的volume的方法,这个主要是看了一篇githup的帖子https://github.com/chrislusf/seaweedfs/wiki/Volume-Server-API,从而解决了要单独调用接口的问题。

1.清除volume:

先看下本机seaweedfs开启的端口,然后执行命令获取当前的volume的id;【也可以直接查看-dir的volume目录的文件,每个文件名称对应一个volume id】

curl "http://localhost:8081/status?pretty=y"

data@data:/home/lmm/save_filter2db_log$ ps -ef | grep weed

data      8598     1  0 6月03 ?       00:30:29 ./weed master -mdir ./weed_master/ -ip=192.168.1.23

data     10240     1  0 6月09 ?       00:13:46 ./weed volume -max=32 -mserver=192.168.1.23:9333 -dir=/data1/weed_volume_1 -port=8081 -ip=192.168.1.23

data     10254     1  0 6月09 ?       00:07:26 ./weed volume -max=32 -mserver=192.168.1.23:9333 -dir=/data2/weed_volume_2 -port=8082 -ip=192.168.1.23


然后执行命令删除指定volume id;

curl "http://localhost:8080/admin/volume/delete?volume=volumeId"

分别在各个node上执行以上命令,删除指定node的volume【删除完成后可以通过执行】。

上面这种方法经试ok。

2.还有一种方法,很方便但是未经测试,有心的可以测试一下并告诉我结果 233:

先查看weed的服务开启的目录,

data@data:/home/lmm/save_filter2db_log$ ps -ef | grep weed

data      8598     1  0 6月03 ?       00:30:29 ./weed master -mdir ./weed_master/ -ip=192.168.1.23

data     10240     1  0 6月09 ?       00:13:46 ./weed volume -max=32 -mserver=192.168.1.23:9333 -dir=/data1/weed_volume_1 -port=8081 -ip=192.168.1.23

data     10254     1  0 6月09 ?       00:07:26 ./weed volume -max=32 -mserver=192.168.1.23:9333 -dir=/data2/weed_volume_2 -port=8082 -ip=192.168.1.23

然后直接直接停掉所有的volume服务,删除掉/data1/weed_volume_1下的所有文件后重启master节点和node节点的volume服务。


就这么多,先记录下,后面有使用方面的问题再更新。


你可能感兴趣的:(linux,seaweedfs)