FastDFS是一个开源的分布式文件系统。
场景功能包括:
文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS架构:
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
跟踪器和存储节点都可以由一台多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
fastdfs-6.06.tar.gz
libfastcommon-1.0.43.tar.gz
fastdfs-nginx-module-1.22.tar.gz
nginx-1.16.1.tar.gz
Yuminstall gcc gcc-c++ make cmake automake autoconf libtool pcrepcre-devel pcre* zlib zlib-devel openssl openssl-devel libeventlibevent-devel perl perl-devel unzip zip net-tools
设置安装路径(可自定义路径)
创建路径
exportDESTDIR=/hadoop/fastdfs/opt/fastdfs
查询路径echo$DESTDIR
解压并进入libfastcommon-1.0.43目录
执行./make.sh&& make install
解压fastdfs-6.06.tar.gz安装包
修改make.sh
cd/hadoop/fastdfs/soft/fastdfs-6.06
vimake.sh
LIBS="-Wl,-rpath=/hadoop/fastdfs/opt/fastdfs/usr/lib64"#lib安装路径
修改TARGET_CONF_PATH设置文件配置路径
if[ ! -d $TARGET_CONF_PATH ]; then
mkdir -p $TARGET_CONF_PATH
修改trackerMakefile.in文件
INC_PATH= -I../common -I${DESTDIR}/usr/include/fastcommon
LIB_PATH =$(LIBS) -L${DESTDIR}/usr/lib64 -lfastcommon
修改storageMakefile.in文件
INC_PATH= -I. -Itrunk_mgr -I../common -I../tracker -I../client -Ifdht_client-I${DESTDIR}/usr/include/fastcommon
LIB_PATH = $(LIBS)-L${DESTDIR}/usr/lib64 -lfastcommon
修改clientMakefile.in文件
INC_PATH= -I../common -I../tracker-I${DESTDIR}/usr/include/fastcommon
LIB_PATH = $(LIBS)-L${DESTDIR}/usr/lib64 -lfastcommon
执行编译
cd/hadoop/fastdfs/soft/fastdfs-6.06/
./make.sh&& make.shinstall
解压安装包
tarzxvf fastdfs-nginx-module-1.22.tar.gz
修改fastdfs-nginx-module编译配置
vifastdfs-nginx-module-1.22/src/config
ngx_module_incs="${DESTDIR}/usr/include${DESTDIR}/usr/include/fastcommon"
CORE_INCS="$CORE_INCS${DESTDIR}/usr/include ${DESTDIR}/usr/include/fastcommon"
修改MOD_CONF_FILENAME文件路径名称
-DFDFS_MOD_CONF_FILENAME="/hadoop/fastdfs/opt/fastdfs/etc/fdfs/mod_fastdfs.conf""
复制fastdfs-nginx-module配置文件到fastdfs存放配置文件的目录
cp/hadoop/fastdfs/soft/fastdfs-nginx-module-1.22/src/mod_fastdfs.conf/hadoop/fastdfs/opt/fastdfs/etc/fdfs/
cd/hadoop/fastdfs/soft/nginx-1.16.1
./configure--prefix=/hadoop/fastdfs/opt/nginx-fdfs--add-module=/hadoop/fastdfs/soft/fastdfs-nginx-module-1.22/src--with-http_ssl_module --with-ld-opt="-L/hadoop/fastdfs/opt/fastdfs/usr/lib-Wl,-rpath=/hadoop/fastdfs/opt/fastdfs/usr/lib64"
;make
注意:此时需要移除为了先面编译设置的变量DESTDIR,因为这个变量和nginx自带某变量冲突,会导致nginx执行makeinstall是安装路径混乱
exportDESTDIR=""
再执行makeinstall
检查nginx是否正常加载所有依赖
ldd/hadoop/fastdfs/opt/nginx-fdfs/sbin/nginx
复制fastdfs源码中给的参考配置文件到fastdfs安装目录
cp./hadoop/fastdfs/soft/fastdfs-6.06/conf/*.conf/hadoop/fastdfs/opt/fastdfs/etc/fdfs/
创建启动脚本目录
mkdir/hadoop/fastdfs/bin
cp/hadoop/fastdfs/opt/fastdfs/etc/init.d/*/hadoop/fastdfs/bin
修改两个启动脚本中程序目录和配置文件目录
vi/hadoop/fastdfs/bin/fdfs_trackerd
PRG=/hadoop/fastdfs/opt/fastdfs/usr/bin/fdfs_trackerd
CONF=/hadoop/fastdfs/opt/fastdfs/etc/fdfs/tracker.conf
vi/home/fastdfs/bin/fdfs_storaged
PRG=/hadoop/fastdfs/opt/fastdfs/usr/bin/fdfs_storaged
CONF=/hadoop/fastdfs/opt/fastdfs/etc/fdfs/storage.conf
编辑tracker.conf
store_lookup=0 #选择上传文件的组的方法,,0为循环
base_path= /hadoop/fastdfs/tracker #tracker日志路径
http.server_port= 8090 #http端口
base_path= /hadoop/fastdfs/client #日志路径
tracker_server= 192.168.10.30:22122 #tracker地址
tracker_server= 192.168.10.40:22122
tracker_server= 192.168.10.50:22122
注:
Trackerserver作用也正是负载均衡和调度
Storageserver作用是文件存储,客户端上传的文件最终存储在Storage服务上
vistorage.conf
group_name= group1 #组名,由storage服务器组成
network_timeout= 60
base_path= /hadoop/fastdfs/storage #日志路径
store_path0= /hadoop/fastdfs/storepath0 #存储目录
tracker_server= 192.168.10.30:22122 #tracker服务器名称
tracker_server= 192.168.10.40:22122
tracker_server= 192.168.10.50:22122
http.server_port= 8888 #http端口
注:storage_server在启动时要注册到tracker_server,
从而实现由tracker_server对其进行调度
解压fastdfs-nginx-module-1.22.tar.gz
vi./fastdfs-nginx-module/src/mod_fastdfs.conf
connect_timeout=2 #连接超时时间
group_name=group1 #storage组名
tracker_server=192.168.10.30:22122
tracker_server=192.168.10.40:22122
tracker_server=192.168.10.50:22122
url_have_group_name= true
store_path0=/hadoop/fastdfs/storepath0 #存储路径
group_count= 2 #组数量
[group1] #组配置
group_name=group1
storage_server_port=23000 #存储端口
store_path_count=1 #存储路径数
store_path0=/hadoop/fastdfs/storepath0 #存储路径
创建软链接
ln-s /hadoop/fastdfs/storepath0/data/hadoop/fastdfs/storepath0/data/M00
vimnginx.conf
listen 8090;
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
启动顺序(tracker必须先启动)
./fdfs_trackerdstart|stop|restart
./fdfs_storaged start|stop|restart
nginx启动
./sbin/nginx
进入/hadoop/fastdfs/opt/fastdfs/usr/bin目录,上传测试文件
./fdfs_test/hadoop/fastdfs/opt/fastdfs/etc/fdfs/client.conf upload/hadoop/fastdfs/341c904235fc6c73778bbb7da5d_p24_mk24.jpg
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129993.html
摘要:项目比较老旧,自己修改了一下,跑在上,用的和位系统,记录下来,以后上传图片都可以用。是一个开源的轻量级分布式文件系统,功能包括文件存储文件同步文件访问文件上传文件下载等。主要的有两个角色和。 项目比较老旧,自己修改了一下,跑在mac上,用的IDEA和centos7 64位系统,记录下来,以后上传图片都可以用。 使用场景:图片上传 如果我们把图片全都放在上传到webapp路径下显然是一种...
摘要:可以将称为追踪服务器或调度服务器。实际保存文件分为多个组,每个组之间保存的文件是不同的。虚拟磁盘路径配置的虚拟路径,与磁盘选项对应。数据两级目录服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。1.什么是FastDFS FastDFS是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等...
阅读 1348·2023-01-11 13:20
阅读 1687·2023-01-11 13:20
阅读 1136·2023-01-11 13:20
阅读 1863·2023-01-11 13:20
阅读 4104·2023-01-11 13:20
阅读 2708·2023-01-11 13:20
阅读 1388·2023-01-11 13:20
阅读 3600·2023-01-11 13:20