基于分布式文件系统的fastdfs之文件排重(四)

基于分布式文件系统的fastdfs-负载均衡篇(三),本篇主要讲解fastdfs的文件去重

文件去重/文件排重-fastdht

1、软件列表及下载地址

下载Berkeleydb

wget http://download.oracle.com/berkeley-db/db-5.2.28.tar.gz

下载Libevent

wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz

下载FastDHT

wget https://codeload.github.com/happyfish100/fastdht/zip/master

2、安装包路径:/root/pkg目录下

在这里插入图片描述

3、安装依赖及fastDHT

1)安装hash数据库FastDHT的依赖库
step1:解压

cd /root/pkg/ && tar -xf db-5.2.28.tar.gz

step2:编译并安装

cd db-5.2.28/build_unix/ && …/dist/configure --prefix=/usr/local/db-5.2.28
make && make install # make -j 4 加快编译速度

step3:安装过程截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)安装libevent
step1:解压
cd /root/pkg 
tar -xf libevent-2.1.11-stable.tar.gz 
step2:编译并安装
cd libevent-2.1.11-stable && ./configure --prefix=/usr/local/libevent-2.1.11
make && make install  #make -j 4 可以加快编译
step3:安装过程截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)安装fastDHT
step1:解压
cd /root/pkg/
unzip fastdht-master.zip
step2:编译安装
cd fastdht-master
./make.sh
./make.sh install
step3:安装过程截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

step4:安装后生成的配置文件路径(/etc/fdht/),没有fdhtd.conf 则需要从源码包中拷贝

在这里插入图片描述

step5:安装后生成的fdh的命令(whereis fdhtd,没有此命令的话,需要手动去拷贝)
ls -l /usr/local/bin/fdh*
cp -p /root/pkg/fastdht-master/init.d/fdhtd  /usr/local/bin/

在这里插入图片描述

4、配置FastDHT

1)cp命令拷贝fdhtd.conf #有的话,无需拷贝
cp -p /root/pkg/fastdht-master/conf/fdhtd.conf  /etc/fdht/ 
2)编辑配置文件
step1:编辑fdhtd.conf文件
vim /etc/fdht/fdhtd.conf	
port=11411  #fdhtd的服务端口号
base_path=/u01/fastdht  #fdhtd的目录
#include /etc/fdht/fdht_servers.conf(本行前有#表示打开,如果想关闭此选项,则应该为##开头)

在这里插入图片描述

step2:编辑fdht_servers.conf
vim /etc/fdht/fdht_servers.conf	
group_count = 2    #有两个group
group0 = 192.168.171.119:11411  
group0 = 192.168.171.129:11411
group1 = 192.168.171.139:11411
group1 = 192.168.171.149:11411

在这里插入图片描述

step3:编辑fdht_client.conf文件
vim /etc/fdht/fdht_client.conf
base_path=/u01/fastdht

在这里插入图片描述

step4:编辑storage.conf文件
vim /etc/fdfs/storage.conf
check_file_duplicate=1   #195行,是否检测上传文件已经存在。如果已经存在,则不存在文件内容,建立一个索引链接以节省磁盘空间)
key_namespace=FastDFS    #206行,当上个参数设定为1时,在FastDHT中的命名空间
keep_alive=1             #210行,长连接配置选项,如果为0则为短连接 1为长连接
#include /etc/fdht/fdht_servers.conf  #217行,可以通过 #include filename 方式来加载 FastDHT servers的配置;#和include之间没有空格)
3)重启fast_storage服务,查看服务的正常性
fdfs_storaged /etc/fdfs/storage.conf restart

119服务器上终端日志输出
在这里插入图片描述
129服务器上终端日志输出
在这里插入图片描述
139服务器上终端日志输出
在这里插入图片描述
149服务器上终端日志输出
在这里插入图片描述

4)检查集群信息

在这里插入图片描述

5)启动fastDHT,查看后台日志
fdhtd /etc/fdht/fdhtd.conf -h

在这里插入图片描述
119服务器上终端日志输出
在这里插入图片描述
129服务器上终端日志输出
在这里插入图片描述
139服务器上终端日志输出
在这里插入图片描述
149服务器上终端日志输出
在这里插入图片描述

6)上传文件并测试

排重前,多次上传同一个文件,如下截图
在这里插入图片描述
排重后,多次上传同一个文件,如下截图
在这里插入图片描述
119服务器
在这里插入图片描述
129服务器
在这里插入图片描述

5、问题:多次上同一个文件只能在同一个group的服务器中,无法轮询到其他group中的服务器中

1)调整storage.conf(将专门作为storage的服务器配置修改)
group_name=group1  #139和149均修改
2)调整mod_fastdfs.conf配置(将专门作为storage的服务器配置修改)
group_name=group1  #139和149均修改
group_count = 0 #并注释点对group1和group2的操作
#[group1]
#group_name=group1
#storage_server_port=23000
#store_path_count=1
#store_path0=/u01/fastdfs/fastdfs_storage
#[group2]
#group_name=group2
#storage_server_port=23000
#store_path_count=1
#store_path0=/u01/fastdfs/fastdfs_storage
3)调整fdht_servers.conf配置

在这里插入图片描述

4)停止fastdfs_storage、fastdfs_tracker、fastdfs_dht,将所有data下的数据备份
5)重启fastdfs_storage、fastdfs_tracker、fastdfs_dht服务器即可
6)多次上传同一个文件,会在所有的storage服务器下有对应的文件

6、脚本

----------------------------------------------------------------------------------------------------------
cat fn.sh
#!/bin/bash
function fn_ssh(){
for i in `cat /etc/hosts |grep test |awk '{print $1}'`
do
ssh -qn $i "$*" && [ $? -eq 0 ] && echo -e "\033[32m [ Do succuess on $i ] \033[0m" || echo -e "\033[32m [ Do fail on $i ] \033[0m"
done
}
	------------------------------------------------------------------------------------------------------
function fn_sync(){
for i in `cat /etc/hosts |grep test |awk '{print $1}'`
do
scp -r $1 $i:$1 && [ $? -eq 0 ] && echo -e "\033[32m [ Do succuess on $i ] \033[0m" || echo -e "\033[32m [ Do fail on $i ] \033[0m"
done
}
	------------------------------------------------------------------------------------------------------
function ft_status(){
fdfs_trackerd /etc/fdfs/tracker.conf $1
}
function ft_log(){
tailf /u01/fastdfs/fastdfs_tracker/logs/trackerd.log
}
	------------------------------------------------------------------------------------------------------
function fs_status(){
fdfs_storaged /etc/fdfs/storage.conf $1
}
	------------------------------------------------------------------------------------------------------
function fs_log(){
tailf /u01/fastdfs/fastdfs_storage/logs/storaged.log
}
	------------------------------------------------------------------------------------------------------
function fm_check(){
fdfs_monitor /etc/fdfs/client.conf
}
	------------------------------------------------------------------------------------------------------
function fu_file(){
fdfs_upload_file /etc/fdfs/client.conf $1
}
	------------------------------------------------------------------------------------------------------
function fh_status(){
/usr/local/bin/fdhtd /etc/fdht/fdhtd.conf  $1
}
	------------------------------------------------------------------------------------------------------
function fh_log(){
tailf /u01/fastdht/logs/fdhtd.log
}
	------------------------------------------------------------------------------------------------------
function fh_check(){
fdht_test /etc/fdht/fdht_client.conf
}

说明:
fn_ssh 为批处理执行命令
fn_sync为批处理同步命令
ft_status为启停fastdfs_tracker服务命令,同理 fs_status,fh_status一样
ft_log为fastdfs_tracker的后台日志,同理fs_log,fh_log一样
fm_check为检查fastdfs集群状态
fu_file为客户端上传文件
fh_check为检测排重服务

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值