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依賴包,再重啓服務就不報錯了。

測試

自行測試即可。

結束

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章