FastDFS去重配置FastDHT

1.简介

由于FastDFS本身不能对重复上传的文件进行去重,而FastDHT可以做到去重。FastDHT是一个高性能的分布式哈希系统,它是基于键值对存储的,而且它需要依赖于Berkeley DB作为数据存储的媒介,使用libevent做网络IO处理。同时需要依赖于libfastcommon。

本次是单机版配置,而且libfastcommon、fastDfs、ngnix都已安装完成。详细配置fastdfs单机版安装

2.软件包

  1. Berkeley DB
    下载地址:db-18.1.25.tar.gz
  2. fastDHT
    下载地址:FastDHT_v1.23.tar.gz

这里统一将文件上传到/root/目录

3.安装

安装 Berkeley DB
# 解压安装包
tar -xzvf db-18.1.25.tar.gz -C /usr/local/src/
# 进入build_unix目录,必须是这个目录
cd /usr/local/src/db-18.1.25/build_unix
# 执行命令(一定要是进入上面的目录后,使用相对路径执行命令):
../dist/configure --prefix=/usr/local/db-18.1.25
# 编译并安装
make  &&  make install
# 删除解压后的文件夹
rm -rf /usr/local/src/db-18.1.25/
# 查看安装下目录结构
ls /usr/local/db-18.1.25/

在这里插入图片描述

安装 FastDHT
# 安装依赖
yum -y install libevent libevent-devel
# 且要保证安装了libfastcommon
# 解压到/usr/local/src/
tar -zxvf FastDHT_v1.23.tar.gz -C /usr/local/src/
cd /usr/local/src/FastDHT
# 编译安装
./make.sh
./make.sh install

安装成功后fastdht被安装在/etc/fdht目录下,生成3个配置文件

cd /etc/fdht/  && ls

在这里插入图片描述
fdht_client.conf

# 配置FastDHT,创建fastdht目录
mkdir -p /fastdfs/fastdht
# 修改/etc/fdht/目录下的配置文件fdht_client.conf
vi /etc/fdht/fdht_client.conf
#(该目录必须是已经存在的)
base_path=/fastdfs/fastdht  
keep_alive=1
##(本行前有#表示打开,如果想关闭此选项,则应该为##开头)
#include /etc/fdht/fdht_servers.conf   

fdht_servers.conf

# 修改/etc/fdht/目录下的配置文件fdht_servers.conf
vi /etc/fdht/fdht_servers.conf
group_count = 1
group0 = 192.168.1.105:11411

fdhtd.conf

# 修改/etc/fdht/目录下的fdhtd.conf
vi /etc/fdht/fdhtd.conf
port=11411
#(该目录必须是已经存在的,前面已经创建过了)
bash_path= /fastdfs/fastdht 
##(本行前有#表示打开,如果想关闭此选项,则应该为##开头)
#include /etc/fdht/fdht_servers.conf  

storage.conf

# 配置/etc/fdfs/目录下的storage.conf
vi /etc/fdfs/storage.conf
#是否检测上传文件已经存在。如果已经存在,则建立一个索引链接以节省磁盘空间

check_file_duplicate=1

#当上个参数设定为1时 , 在FastDHT中的命名空间

key_namespace=FastDFS

#长连接配置选项,如果为0则为短连接 1为长连接

keep_alive=1

#此处特别需要注意配置,## 开头才是注释

#include /etc/fdht/fdht_servers.conf
# 拷贝库文件
cp /usr/local/db-18.1.25/lib/libdb-18.so /usr/lib/
cp /usr/local/db-18.1.25/lib/libdb-18.so /usr/lib64/
#开放端口11411
firewall-cmd --zone=public --add-port=11411/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all

启动FastDHT
fdhtd /etc/fdht/fdhtd.conf restart

如果启动报错(未加载库文件):
在这里插入图片描述
解决方法:

 # 重新加载
ldconfig 
ldd /usr/local/bin/fdhtd

在这里插入图片描述
重新启动服务

fdhtd /etc/fdht/fdhtd.conf restart

查看是否成功
注:如果未关闭防火墙,记得开放端口

# 安装netstat命令
yum install net-tools
netstat -ntlp

看到如下图,则成功
在这里插入图片描述

#重启一下fdfs_trackerd和fdfs_storaged服务,便于后面的测试:

如果启动服务报错(这是个大坑,能查到的资料有限):
在这里插入图片描述
解决办法:

因为是库文件受到损坏导致的,所以需要把库文件删除后再重新安装一遍。

rm -rf /usr/lib64/libfastcommon.so

rm -rf /usr/lib/libfastcommon.so

rm -rf /usr/local/lib/libfastcommon.so.1

rm -rf /usr/local/libfastcommon

然后重新解压安装一次libfastcommon依赖包,再重启服务就不报错了。

测试

自行测试即可。

结束

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值