CentOS安装FastDHT

简介

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

安装前准备

yum install \
vim \
git \
gcc \
gcc-c++ \
wget \
make \
automake \
autoconf \
libtool \
libdb \
libdb-devel \
libevent \
libevent-devel \
-y 

安装 libfastcommon

cd /usr/local/src
git clone https://github.com/happyfish100/libfastcommon.git
cd libfastcommon/
./make.sh
./make.sh install

安装Berkley db

cd /usr/local/src
wget http://download.oracle.com/berkeley-db/db-6.2.23.tar.gz
tar -zxvf db-6.2.23.tar.gz
cd db-6.2.23
./dist/configure --prefix=/usr/local/db
make
make install

DB安装完毕,会在/usr/local目录下生成目录db。

安装FastDHT

cd /usr/local/src
git clone https://github.com/happyfish100/fastdht.git
cd fastdht
#修改make.sh
vim make.sh
CFLAGS='-Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE'
#改为:
CFLAGS='-Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I/usr/local/db/include/ -L/usr/local/db/lib/'
ESC
:wq
./make.sh
./make.sh install

修改配置文件

  1. 在/home/hc下面创建文件夹fdht。

  2. 进入目录/etc/fdht,然后依次修改里面的三个文件
    在这里插入图片描述

fdht_client.conf

vim /etc/fdht/fdht_client.conf
 
#本选项关联 storaged.conf文件
keep_alive=1
base_path=/home/hc/fdht
#include /etc/fdht/fdht_servers.conf
 
ESC
:wq

注:#include /etc/fdht/fdht_servers.conf前的#表示打开,如果想关闭此选项,则应该为##开头。 #和include之间没有空格

fdht_servers.conf

vim /etc/fdht/fdht_servers.conf 
group_count=1
group0 = 172.16.85.129:11411 

ESC
:wq

fdhtd.conf

vim /etc/fdht/fdhtd.conf
 
bind_addr=172.16.85.129
port=11411
base_path=/home/hc/fdht
cache_size=64MB
#include /etc/fdht/fdht_servers.conf
 
ESC
:wq

注:#include /etc/fdht/fdht_servers.conf前的#表示打开,如果想关闭此选项,则应该为##开头。 #和include之间没有空格

引入libdb.so

ln -s /usr/local/db/lib/libdb-6.2.so /usr/lib/libdb-6.2.so
ln -s /usr/local/db/lib/libdb-6.2.so /usr/lib64/libdb-6.2.so

修改/etc/fdfs/目录下的storage.conf文件

#是否检测上传文件已经存在。如果已经存在,则建立一个索引链接以节省磁盘空间
check_file_duplicate=1
#当上个参数设定为1时 , 在FastDHT中的命名空间
key_namespace=FastDFS
#长连接配置选项,如果为0则为短连接 1为长连接
keep_alive=1
#此处特别需要注意配置
#include /etc/fdht/fdht_servers.conf

启动FastDHT

/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf

加入开机启动:

vim /etc/rc.local
/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf
ESC
:wq
chmod +x /etc/rc.local

测试

多次执行命令会去重:
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/fastdfs-6.05/conf/anti-steal.jpg

依次上传多个文件:
在这里插入图片描述
结果:

在这里插入图片描述
上传成功后返回路径,查看storage存储对应存储路径,发现返回的为一个软链接,之后每次重复上传都是返回一个指向第一次上传的文件的软链接。也就保证了文件只保存了一份。需要说明的是,FastDFS不会返回原始文件的索引,返回的全部都是软链接,当所有的软链接都被删除的时候,原始文件也会从FastDFS中被删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梁云亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值