分布式存储fastdfs安装使用

简介: 分布式存储fastdfs安装使用

1.下载地址https://github.com/happyfish100/fastdfs
https://github.com/happyfish100/fastdfs/wiki安装辅助说明文档
2.安装编译环境
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
三台主机:
172.18.224.100(tracker,client)
172.18.224.101(storage)
172.18.224.100(storage)
3.创建数据存储目录
mkdir /dfs
4.安装libfatscommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装
1
5.安装FastDFS
git clone https://github.com/happyfish100/fastdfs.git --depth 1
./make.sh && ./make.sh install #编译安装
cd fastdfs/conf
2
6.复制两个nginx访问时使用到的配置文件
cp http.conf /etc/fdfs/
cp mime.types /etc/fdfs/
7.
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
8.172.18.224.100编辑/etc/fdfs/tracker.conf:
base_path=/dfs/tracker ###自己定义的tracker目录
mkdir /dfs/tracker start
/etc/init.d/fdfs_trackerd start
9.172.18.224.101,172.18.224.102 编辑/etc/fdfs/storage.conf
base_path=/dfs/storage ###storage主目录
store_path0=/dfs/storage/0 ###存贮目录
tracker_server=172.18.224.100:22122
http.server_port=8080 ##与tracker文件保持一致
/etc/init.d/fdfs_storaged start ##启动storaged
3
10.查看fdfs是否安装成功:
fdfs_monitor /etc/fdfs/storage.conf4
11.编辑client端配置文件:
vim /etc/fdfs/client.conf
base_path=/dfs/client
mkdir -pv /dfs/clinet
12.上传文件:
fdfs_upload_file
5
fdfs_upload_file /etc/fdfs/client.conf /etc/fstab
查看文件信息fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBLgZVwwaiqAFIG_AAABOWqC2ow1549165
13.下载文件
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/rBLgZVwwaiqAFIG_AAABOWqC2ow1549165 /tmp/fs
14.172.18.224.101,102安装fastdfs-nginx-module
git clone https://github.com/happyfish100/fastdfs-nginx-module.git
/root/fastdfs-nginx-module/src
cp mod_fastdfs.conf /etc/fdfs/
15.安装nginx:
yum install pcre-devel openssl-devel ##安装依赖包
wget http://nginx.org/download/nginx-1.15.4.tar.gz ##下载nginx
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/ #添加fastdfs-nginx-module模块
make && make install #编译安装
16.配置nginx:
vim /etc/fdfs/mod_fastdfs.conf

需要修改的内容如下

tracker_server=192.168.52.1:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/dfs

配置nginx.config

vim /usr/local/nginx/conf/nginx.conf

添加如下配置

server {

listen       8888;    ## 该端口为storage.conf中的http.server_port相同
server_name  localhost;
location ~/group[0-9]/ {
    ngx_fastdfs_module;
}

}
如果服务器存在多个nginx:
/usr/local/nginx/sbin/nginx -c /usr/local/src/nginx-1.15.4/conf/nginc.conf

注意,必须要保证已经从fastdfs/conf复制了http.conf与mime.types文件至/etc/fdfs/

6
17.使用curl命令验证fastdfs存储的文件是否可以通过http协议访问:
先随便上传一个文件 fdfs_upload_file /etc/fdfs/client.conf /etc/fstab

curl http://172.18.224.101:8888/group1/M00/00/00/rBLgZlwwd9OAWZztAAABOWqC2ow7681129
7
验证成功。

目录
相关文章
|
Python Windows
微软开源分布式高性能GB框架LightGBM安装使用——Python
最近写了一篇关于“微软开源分布式高性能GB框架LightGBM安装使用”的文章,有小伙伴安装Python环境遇到了问题。我个人也尝试安装了一下,确实遇到了很多问题。 先看遇到的坑 (Linux环境解决起来可能简单一些,Windows用户相对比较麻烦): pip官网国外镜像站无法访问 python2.
1341 0
|
算法 C++
微软开源分布式高性能GB框架LightGBM安装使用
LightGBM(Light Gradient Boosting Machine)是一个基于决策树算法的快速的、分布式的、高性能 gradient boosting(GBDT、GBRT、GBM 或 MART)框架,可被用于排行、分类以及其他许多机器学习任务中。
1869 0
|
1月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
3月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
112 2
基于Redis的高可用分布式锁——RedLock
|
3月前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
|
10天前
|
NoSQL Redis
Redis分布式锁如何实现 ?
Redis分布式锁通过SETNX指令实现,确保仅在键不存在时设置值。此机制用于控制多个线程对共享资源的访问,避免并发冲突。然而,实际应用中需解决死锁、锁超时、归一化、可重入及阻塞等问题,以确保系统的稳定性和可靠性。解决方案包括设置锁超时、引入Watch Dog机制、使用ThreadLocal绑定加解锁操作、实现计数器支持可重入锁以及采用自旋锁思想处理阻塞请求。
43 16
|
1月前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
59 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
1月前
|
NoSQL Redis 数据库
计数器 分布式锁 redis实现
【10月更文挑战第5天】
48 1
|
1月前
|
NoSQL 算法 关系型数据库
Redis分布式锁
【10月更文挑战第1天】分布式锁用于在多进程环境中保护共享资源,防止并发冲突。通常借助外部系统如Redis或Zookeeper实现。通过`SETNX`命令加锁,并设置过期时间防止死锁。为避免误删他人锁,加锁时附带唯一标识,解锁前验证。面对锁提前过期的问题,可使用守护线程自动续期。在Redis集群中,需考虑主从同步延迟导致的锁丢失问题,Redlock算法可提高锁的可靠性。
74 4
|
1月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
62 4

热门文章

最新文章