CentOS7搭建FastDFS V5.11分布式文件系统及Java整合详细过程(二)

来源:互联网 发布:2014年程序员考试真题 编辑:程序博客网 时间:2024/06/03 06:30

链接:
第一篇:FastDFS详细介绍
第三篇:FastDFS整合nginx
第四篇:整合Java Spring MVC上传

1.CentOS7FastDFS搭建

前面已下载好了要用到的工具集,下面就可以开始安装了:
如果安装过程中出现问题,可以下载我提供的,当前测试可以通过的工具包:

fastdfs-5.11下载
fastdfs-client-java-1.26下载
fastdfs-nginx-module-1.20下载
libfastcommon-1.36下载
nginx-1.12.0下载

请大家原谅我可耻的收了一分,写这么长的博文确实是很辛苦的,要花很长时间。如果觉得这篇博文帮忙到了你,还请帮忙下载支持一下。您的鼓励将成为我最大的动力。当然,作者的GitHub地址已提供给大家,大家可以去GitHub下载。

1.1 安装libfastcommon

由于我的centOS7是最小化安装,我里面没有安装zip解压。
先安装 :

yum -y install unzip zip

安装成功后解压libfastcommon-master.zip

unzip libfastcommon-master.zip

进入我们刚刚解压的目录:

[root@localhost ftp]# cd libfastcommon-master[root@localhost libfastcommon-master]# lltotal 32drwxr-xr-x 2 root root  117 Apr  5 18:07 doc-rw-r--r-- 1 root root 8005 Apr  5 18:07 HISTORY-rw-r--r-- 1 root root  566 Apr  5 18:07 INSTALL-rw-r--r-- 1 root root 1606 Apr  5 18:07 libfastcommon.spec-rwxr-xr-x 1 root root 3099 Apr  5 18:07 make.shdrwxr-xr-x 2 root root  191 Apr  5 18:07 php-fastcommon-rw-r--r-- 1 root root 2763 Apr  5 18:07 READMEdrwxr-xr-x 3 root root 4096 Jun  8 21:51 src

当我们./make.sh的时候会提示,gcc命令没有找到。

用yum安装gcc:
yum命令相当好用,是RedHad和CentOS从指定服务器下载RPM包并自动安装。我个人比较喜欢。

yum -y install gcc-c++

这个时候分别执行./make.sh和./make.sh install,正常情况是可以成功的。
libfastcommon默认会被安装到/usr/lib64/libfastcommon.so但是FastDFS的主程序却在/usr/local/lib目录下
这个时候我们就要建立一个软链接了,实际上也相当于windows上的快捷方式。

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.soln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.soln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.soln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

1.2安装FastDFS

解压FastDFS安装包

unzip fastdfs-5.11.zip

解压后看到:

[root@localhost ftp]# ls593d8f1eN5b3b8133.jpg            libfastcommon-masterfastdfs-5.11                     libfastcommon-master.zipfastdfs-5.11.zip                 nginx-1.12.0.tar.gzfastdfs-client-java-master.zip   record.txtfastdfs-nginx-module-master.zip  zookeeper-3.4.6.tar.gz

进到刚解压的目录

cd fastdfs-5.11./make.sh./make.sh install

如果没有报错那么就成功了。安装log中会提示FastDFS安装到了/etc/fdfs目录下。

成功后查看安装目录:

[root@localhost ftp]# cd /etc/fdfs/[root@localhost fdfs]# ll-rw-r--r-- 1 root root  1461 Jun  8 21:56 client.conf.sample-rw-r--r-- 1 root root  7927 Jun  8 21:56 storage.conf.sample-rw-r--r-- 1 root root  7389 Jun  8 21:56 tracker.conf.sample

我们需要把这三个示例文件复制一份,去掉.sample。

cp client.conf.sample client.confcp storage.conf.sample storage.confcp tracker.conf.sample tracker.conf

FastDFS安装结束。

1.3安装tracker

1.3.1创建tracker工作目录

这个目录可以自定义,用来保存tracker的data和log
根据个人习惯,我创建了下面的目录:

[root@localhost ~]# cd /usr/[root@localhost usr]# mkdir yong.cao[root@localhost usr]# cd yong.cao/[root@localhost yong.cao]# mkdir dev[root@localhost yong.cao]# cd dev/[root@localhost dev]# mkdir fastdfs[root@localhost yong.cao]# cd fastdfs/[root@localhost dev]# mkdir fastdfs_tracker[root@localhost fastdfs]# cd fastdfs_tracker/[root@localhost fastdfs_tracker]# pwd/usr/yong.cao/dev/fastdfs/fastdfs_tracker        #这个是我最终创建的目录[root@localhost fastdfs_tracker]#

1.3.2配置tracker

cd /etc/fdfsvim tracker.conf

最小化的CentOS7是没有安装vim的,可以把vim tracker.conf命令改成vi tracker.conf,也可以去下载一个vim

yum -y install vim     #简单粗暴安装方法

打开后重点关注下面4个配置:
1.disabled=false #默认开启
2.port=22122 #默认端口号
3.base_path=/usr/yong.cao/dev/fastdfs/fastdfs_tracker #我刚刚创建的目录
4.http.server_port=6666 #默认端口是8080

1.3.3启动tracker

保存配置后启动tracker,命令如下:

service fdfs_trackerd start

如果不能启动,或提示用systemctl可改用命令:

systemctl start fdfs_trackerd

成功后应该可以看到:

[root@localhost fdfs]# service fdfs_trackerd startStarting fdfs_trackerd (via systemctl):                    [  OK  ]

进行刚刚创建的tracker目录,发现目录中多了data和log两个目录

[root@localhost fdfs]# cd /usr/yong.cao/dev/fastdfs/fastdfs_tracker/[root@localhost fastdfs_tracker]# lltotal 0drwxr-xr-x 2 root root 178 Jun 16 21:19 datadrwxr-xr-x 2 root root  26 Jun 13 22:01 logs

最后我们需要给tracker加入开机启动

[root@localhost fastdfs_tracker]# ll /etc/rc.d/rc.local-rw-r--r-- 1 root root 501 Jun 16 21:34 /etc/rc.d/rc.local

发现并没有执行权限,需要加一下:

chmod +x /etc/rc.d/rc.local

加完后应该是这样的:

-rwxr-xr-x 1 root root 501 Jun 16 21:34 /etc/rc.d/rc.local修改rc.localvim /etc/rc.d/rc.local
#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/localservice fdfs_trackerd start

查看一下tracker的端口监听情况

[root@localhost fastdfs_tracker]# netstat -unltp|grep fdfstcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      2231/fdfs_trackerd

端口22122成功监听。

1.4 安装storage

storage的安装与tracker很类似。

1.4.1 为storage配置工作目录

与tracker不现的是,由于storage还需要一个目录用来存储数据,所以我另外多建了一个fasdfs_storage_data
下面是我的目录结构:

[root@localhost fastdfs]# lsfastdfs_storage  fastdfs_storage_data  fastdfs_tracker

1.4.2 修改storage配置文件

修改storage.conf

vim /etc/fdfs/storage.conf

1.disabled=false
2.group_name=group1 #组名,根据实际情况修改
3.port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
4.base_path=/usr/yong.cao/dev/fastdfs/fastdfs_storage #设置storage数据文件和日志目录
5.store_path_count=1 #存储路径个数,需要和store_path个数匹配
6.base_path0=/usr/yong.cao/dev/fastdfs/fastdfs_storage_data #实际文件存储路径
7.tracker_server=192.168.128.131:22122 #我CentOS7的ip地址
8.http.server_port=8888 #设置 http 端口号

修改保存后创建软引用

ln -s /usr/bin/fdfs_storaged /usr/local/bin

1.4.3 启动storage

service fdfs_storaged start

如果不能启动,或提示用systemctl可改用命令:

systemctl start fdfs_storaged

成功后应该可以看到:

[root@localhost fdfs]# service fdfs_stroaged startStarting fdfs_storaged (via systemctl):                    [  OK  ]

同样的,设置开机启动:
修改rc.local

vim /etc/rc.d/rc.local
#!/bin/bash# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES## It is highly advisable to create own systemd services or udev rules# to run scripts during boot instead of using this file.## In contrast to previous versions due to parallel execution during boot# this script will NOT be run after all other services.## Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure# that this script will be executed during boot.touch /var/lock/subsys/localservice fdfs_trackerd startservice fdfs_storaged start

查看一下服务是否启动

[root@localhost fastdfs]# netstat -unltp | grep fdfstcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      2231/fdfs_trackerdtcp        0      0 0.0.0.0:23000           0.0.0.0:*               LISTEN      2323/fdfs_storaged

服务已正常启动。

1.4.4 校验整合

到这里,fastdfs的东西都已安装完成,最后我们还要确定一下,storage是否注册到了tracker中去。
查看命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

成功后可以看到:
ip_addr = 192.168.128.131 (localhost.localdomain) ACTIVE

[root@localhost fastdfs]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf[2017-06-17 14:15:44] DEBUG - base_path=/usr/yong.cao/dev/fastdfs/fastdfs_storage, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0server_count=1, server_index=0tracker server is 192.168.128.131:22122group count: 1Group 1:group name = group1disk total space = 8178 MBdisk free space = 6463 MBtrunk free space = 0 MBstorage server count = 2active server count = 1storage server port = 23000storage HTTP port = 8888store path count = 1subdir count per path = 256current write server index = 0current trunk file id = 0        Storage 1:                id = 192.168.128.131                ip_addr = 192.168.128.131 (localhost.localdomain)  ACTIVE                http domain =                version = 5.11                join time = 2017-06-13 22:19:42                up time = 2017-06-16 21:19:47                total storage = 8178 MB                free storage = 6463 MB                upload priority = 10                store_path_count = 1                subdir_count_per_path = 256                storage_port = 23000                storage_http_port = 8888                current_write_path = 0                source storage id =                if_trunk_server = 0                connection.alloc_count = 256                connection.current_count = 0                connection.max_count = 1                total_upload_count = 6                success_upload_count = 6                total_append_count = 0                success_append_count = 0                total_modify_count = 0                success_modify_count = 0                total_truncate_count = 0                success_truncate_count = 0                total_set_meta_count = 5                success_set_meta_count = 5                total_delete_count = 0                success_delete_count = 0                total_download_count = 0                success_download_count = 0                total_get_meta_count = 0                success_get_meta_count = 0                total_create_link_count = 0                success_create_link_count = 0                total_delete_link_count = 0                success_delete_link_count = 0                total_upload_bytes = 590790                success_upload_bytes = 590790                total_append_bytes = 0                success_append_bytes = 0                total_modify_bytes = 0                success_modify_bytes = 0                stotal_download_bytes = 0                success_download_bytes = 0                total_sync_in_bytes = 0                success_sync_in_bytes = 0                total_sync_out_bytes = 0                success_sync_out_bytes = 0                total_file_open_count = 6                success_file_open_count = 6                total_file_read_count = 0                success_file_read_count = 0                total_file_write_count = 6                success_file_write_count = 6                last_heart_beat_time = 2017-06-17 14:15:27                last_source_update = 2017-06-16 23:34:20                last_sync_update = 1970-01-01 08:00:00                last_synced_timestamp = 1970-01-01 08:00:00[root@localhost fastdfs]#

本博文结束。接下来的第三篇会讲到文件上传的简单测试及整合nginx模块。

阅读全文
1 0