`
jingtao416
  • 浏览: 30115 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初次使用fast dfs 遇到的问题记录

    博客分类:
  • dfs
阅读更多
开发过程使用fastdfs,第一次接触,使用时遇到的问题整理如下

问题1:
在centos上安装 ./make.sh 时报错如下:

在包含自 tracker_service.c:34 的文件中:
tracker_nio.h:17:19: 错误:event.h:没有那个文件或目录
In file included from tracker_nio.h:18,
                 from tracker_service.c:34:
fast_task_queue.h:29: 错误:字段‘ev_read’的类型不完全
fast_task_queue.h:30: 错误:字段‘ev_write’的类型不完全
tracker_service.c: 在函数‘tracker_service_init’中:
tracker_service.c:99: 警告:隐式声明函数‘event_base_new’
tracker_service.c:99: 警告:赋值时将整数赋给指针,未作类型转换
tracker_service.c: 在函数‘work_thread_entrance’中:
tracker_service.c:253: 错误:‘ev_notify’的存储大小未知
tracker_service.c:258: 警告:隐式声明函数‘event_set’
tracker_service.c:259: 错误:‘EV_READ’未声明(在此函数内第一次使用)
tracker_service.c:259: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
tracker_service.c:259: 错误:所在的函数内也只报告一次。)
tracker_service.c:259: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
tracker_service.c:260: 警告:隐式声明函数‘event_base_set’
tracker_service.c:266: 警告:隐式声明函数‘event_add’
tracker_service.c:275: 警告:隐式声明函数‘event_base_loop’
tracker_service.c:279: 警告:隐式声明函数‘event_base_free’
tracker_service.c:253: 警告:未使用的变量‘ev_notify’
make: *** [tracker_service.o] 错误 1
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -c -o ../common/fast_mblock.o ../common/fast_mblock.c  -I. -Itrunk_mgr -I../common -I../tracker -I../client -Ifdht_client -I/usr/local/include
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -c -o ../common/avl_tree.o ../common/avl_tree.c  -I. -Itrunk_mgr -I../common -I../tracker -I../client -Ifdht_client -I/usr/local/include
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -c -o ../tracker/fdfs_shared_func.o ../tracker/fdfs_shared_func.c  -I. -Itrunk_mgr -I../common -I../tracker -I../client -Ifdht_client -I/usr/local/include
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -c -o ../tracker/fast_task_queue.o ../tracker/fast_task_queue.c  -I. -Itrunk_mgr -I../common -I../tracker -I../client -Ifdht_client -I/usr/local/include
在包含自 ../tracker/fast_task_queue.c:6 的文件中:
../tracker/fast_task_queue.h:18:19: 错误:event.h:没有那个文件或目录
In file included from ../tracker/fast_task_queue.c:6:
../tracker/fast_task_queue.h:29: 错误:字段‘ev_read’的类型不完全
../tracker/fast_task_queue.h:30: 错误:字段‘ev_write’的类型不完全
make: *** [../tracker/fast_task_queue.o] 错误 1


查看资料说是缺少libevent
安装yum install libevent-devel.x86_64 后,再次./make.sh, 没看到报错信息了


问题2:

在ubuntu上安装时,运行./make.sh 出错如下

make: 没有什么可以做的为 `all'。
make: 没有什么可以做的为 `all'。
cc -Wall -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -g -O -DDEBUG_FLAG -DOS_LINUX -o fdfs_monitor fdfs_monitor.c  ../common/hash.o ../common/chain.o ../common/shared_func.o ../common/ini_file_reader.o ../common/logger.o ../common/sockopt.o ../common/base64.o ../common/sched_thread.o ../common/http_func.o ../common/md5.o ../common/pthread_func.o ../common/local_ip_func.o ../common/avl_tree.o ../common/connection_pool.o ../common/fdfs_global.o ../common/fdfs_http_shared.o ../common/mime_file_parser.o ../tracker/tracker_proto.o ../tracker/fdfs_shared_func.o ../storage/trunk_mgr/trunk_shared.o tracker_client.o client_func.o client_global.o storage_client.o -ldl -rdynamic -I../common -I../tracker -I/usr/local/include
../common/sched_thread.o: In function `sched_start':
/opt/FastDFS/tracker/../common/sched_thread.c:495: undefined reference to `pthread_create'
../common/pthread_func.o: In function `kill_work_threads':
/opt/FastDFS/tracker/../common/pthread_func.c:182: undefined reference to `pthread_kill'
../common/pthread_func.o: In function `init_pthread_attr':
/opt/FastDFS/tracker/../common/pthread_func.c:84: undefined reference to `pthread_attr_getstacksize'
/opt/FastDFS/tracker/../common/pthread_func.c:115: undefined reference to `pthread_attr_setstacksize'
../common/pthread_func.o: In function `create_work_threads':
/opt/FastDFS/tracker/../common/pthread_func.c:156: undefined reference to `pthread_create'
../common/pthread_func.o: In function `init_pthread_lock':
/opt/FastDFS/tracker/../common/pthread_func.c:32: undefined reference to `pthread_mutexattr_init'
/opt/FastDFS/tracker/../common/pthread_func.c:40: undefined reference to `pthread_mutexattr_settype'
/opt/FastDFS/tracker/../common/pthread_func.c:57: undefined reference to `pthread_mutexattr_destroy'
collect2: ld 返回 1
make: *** [fdfs_monitor] 错误 1


网上查看资料是说在make.sh 文件中没有指定libpthread.so 和 libpthread.a的正确路径,所以打开make.sh找到如下代码

 if [ -f /usr/lib/libpthread.so ] || [ -f /usr/local/lib/libpthread.so ] || [ -f /lib64/libpthread.so ] || [ -f /usr/lib64/libpthread.so ]
  || [ -f /usr/lib/libpthread.a ] || [ -f /usr/local/lib/libpthread.a ] || [ -f /lib64/libpthread.a ] || [ -f /usr/lib64/libpthread.a ]; 


在我机器上找了下,确实在以上代码中指定的路径中没有找到libpthread.so 和 libpthread.a; 随后我在/usr/lib32中找到了libpthread.so 和 libpthread.a,

所以增加软连接
 
  ln -s /usr/lib32/libpthread.so /usr/lib/libpthread.so 
  ln -s /usr/lib32/libpthread.a /usr/lib/libpthread.a

 
再次运行./make.sh 问题解决

 
问题3:
./make.sh install 时 报错如下:

mkdir -p /usr/local/bin
mkdir -p /etc/fdfs
cp -f fdfs_trackerd  /usr/local/bin
if [ ! -f /etc/fdfs/tracker.conf ]; then cp -f ../conf/tracker.conf ../conf/mime.types ../conf/http.conf /etc/fdfs; fi
mkdir -p /usr/local/bin
mkdir -p /etc/fdfs
cp -f fdfs_storaged  /usr/local/bin
if [ ! -f /etc/fdfs/storage.conf ]; then cp -f ../conf/storage.conf ../conf/mime.types ../conf/http.conf /etc/fdfs; fi
mkdir -p /usr/local/bin
mkdir -p /etc/fdfs
mkdir -p /usr/local/lib
cp -f fdfs_monitor fdfs_test fdfs_test1 fdfs_crc32 fdfs_upload_file fdfs_download_file fdfs_delete_file fdfs_file_info fdfs_appender_test fdfs_appender_test1 fdfs_append_file fdfs_upload_appender /usr/local/bin
if [ 0 -eq 1 ]; then cp -f libfastcommon.a libfdfsclient.a /usr/local/lib; fi
if [ 1 -eq 1 ]; then cp -f libfastcommon.so.1 libfdfsclient.so.1 /usr/local/lib; fi
if [ 1 -eq 1 ]; then ln -fs /usr/local/lib/libfastcommon.so.1 /usr/local/lib/libfastcommon.so; fi
if [ 1 -eq 1 ]; then ln -fs /usr/local/lib/libfdfsclient.so.1 /usr/local/lib/libfdfsclient.so; fi
if [ ! -f /etc/fdfs/client.conf ]; then cp -f ../conf/client.conf ../conf/http.conf /etc/fdfs; fi
mkdir -p /usr/local/include
mkdir -p /usr/local/include/fastcommon
mkdir -p /usr/local/include/fastdfs
cp -f ../common/common_define.h ../common/hash.h ../common/chain.h ../common/logger.h ../common/base64.h ../common/shared_func.h ../common/pthread_func.h ../common/ini_file_reader.h ../common/sockopt.h ../common/sched_thread.h ../common/http_func.h ../common/md5.h ../common/_os_bits.h ../common/local_ip_func.h ../common/avl_tree.h ../common/connection_pool.h /usr/local/include/fastcommon
cp -f ../common/fdfs_define.h ../common/fdfs_global.h ../common/mime_file_parser.h ../common/fdfs_http_shared.h ../tracker/tracker_types.h ../tracker/tracker_proto.h ../tracker/fdfs_shared_func.h ../storage/trunk_mgr/trunk_shared.h tracker_client.h storage_client.h storage_client1.h client_func.h client_global.h fdfs_client.h /usr/local/include/fastdfs
if [ 1 -eq 1 -a /usr/local/lib = "/usr/local/lib" ]; then sh ./fdfs_link_library.sh; fi
ln: 创建符号链接 "/usr/lib64/libfastcommon.so": 没有那个文件或目录
ln: 创建符号链接 "/usr/lib64/libfdfsclient.so": 没有那个文件或目录
make: *** [install] 错误 1


这个问题只需要 创建 lib64目录即可:mkdir -p /usr/lib64


问题4:

测试上传时遇到的一个错误
测试命令 ./fdfs_upload /etc/fdfs/storage.conf upload /home/test.txt

出错如下:
This is FastDFS client test program v4.06

Copyright (C) 2008, Happy Fish / YuQing

FastDFS may be copied only under the terms of the GNU General
Public License V3, which may be found in the FastDFS source kit.
Please visit the FastDFS Home Page http://www.csource.org/ 
for more detail.

[2014-03-20 18:47:13] DEBUG - base_path=/data/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: 0

[2014-03-20 18:47:13] DEBUG - file: tracker_proto.c, line: 48, server: 192.168.88.202:22122, response status 2 != 0
[2014-03-20 18:47:13] DEBUG - file: tracker_proto.c, line: 48, server: 192.168.88.202:22122, response status 28 != 0
tracker_query_storage fail, error no: 28, error info: No space left on device


错误说是磁盘空间不够了,但是这时查看了一下tracker的日志:

[2014-03-20 18:47:12] ERROR - file: tracker_service.c, line: 2371, client ip: 192.168.88.202, invalid group name: group1


我尝试修改 tracker.conf 文件中的 reserved_storage_space = 1%, 随后测试通过,但是不知道tracker的日志为何报出上述错误。
分享到:
评论

相关推荐

    fast_DFS分布式资源文件系统的搭建

    centos 7 安装fastdfs5.0.9,里面含有FDFS的搭建,测试,以及对fastdfs-nginx-module的支持。最后还有 SpringMVC整合fastdfs-client-java实现web文件上传下载。

    Fast_DFS_调研报告2

    《Fast DFS深度解析:分布式文件系统的精粹》 在当今数字化时代,文件系统扮演着至关重要的角色,尤其在大数据和云计算领域,分布式文件系统成为了解决海量数据存储和处理的关键技术。Fast DFS作为一款轻量级的...

    寒假37.dfs城堡问题_深度优先搜索_dfs城堡问题_

    在"DFS城堡问题"中,我们面临的是一个二维网格的城堡结构,每个位置代表一个房间,房间之间可能存在通道使得它们相互连接。问题的目标是找出城堡中最大连通的房间数,即寻找最大的房间集合,使得在这个集合内的所有...

    DFS求解八数码问题

    在图1,3*3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空。 如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态(图1左)到目标状态(图1右)。...

    使用DFS实现IIS负载均衡中双机文件同步

    因此,需配置DNS服务器,为每台DFS服务器设置A记录,确保所有服务器能够通过域名相互访问。同时,每台服务器的HOSTS文件中也应包含对其他服务器域名的解析,以便在没有DNS的情况下也能进行通信。 3. **DFS命名空间...

    fast-dfs离线安装所有资源

    【标题】:“fast-dfs离线安装所有资源” 在Linux操作系统中,特别是在没有网络连接或者网络环境不稳定的情况下,离线安装软件系统变得尤为重要。这里提到的“fast-dfs离线安装所有资源”针对的是FastDFS分布式文件...

    dfs_C++_dfs_

    - 避免无限循环:在DFS过程中,需要记录已访问过的节点,防止重复访问。 - 空间复杂度:递归版本的DFS可能会导致堆栈溢出,而栈版本的DFS虽然避免了这个问题,但会占用额外的内存存储路径信息。 6. **调试与测试...

    迷宫问题的DFS实现

    标题"迷宫问题的DFS实现"暗示了我们将使用DFS来解决在二维网格上找到从起点到终点的路径问题。迷宫通常可以被抽象为一个二维数组或图,其中1代表可通行的路径,0代表障碍物。DFS适用于这样的结构,因为它能在有限的...

    蛮力法(DFS)解决TSP问题

    **旅行商问题(Traveling Salesman Problem, TSP)**是一个经典的组合优化问题,它询问的是:给定一系列城市和每对城市之间的距离,找出访问每个城市一次并返回原点的最短路径。这个问题被广泛地应用在物流、电路...

    八皇后问题 最简单dfs模板代码

    八皇后问题 最简单dfs模板代码八皇后问题 最简单dfs模板代码八皇后问题 最简单dfs模板代码八皇后问题 最简单dfs模板代码八皇后问题 最简单dfs模板代码八皇后问题 最简单dfs模板代码八皇后问题 最简单dfs模板代码八...

    dfs.rar_dfs_dfs java

    例如,判断一个图是否包含环,可以使用DFS配合时间戳记录访问顺序;在二叉树中查找路径,可以通过DFS递归地搜索左子树和右子树;在迷宫问题中,DFS可以用于找到起点到终点的路径等。 总结来说,"dfs.rar_dfs_dfs_...

    树的DFS序及其应用

    在递归过程中,我们用一个全局变量作为DFS时钟(dfs_clock),每次访问一个节点时,增加DFS时钟,并记录该节点的进入时间(start[x]),继续递归访问所有未访问的子节点,最后记录节点的离开时间(end[x])。...

    八数码问题(数字华容道,九宫格)深度搜索(DFS)广度搜索(BFS)和A*算法C++源码

    在八数码问题中,A*使用启发式函数(通常是曼哈顿距离或汉明距离)来评估每个状态到目标状态的估计成本。这使得算法能够优先考虑更有可能通往目标的状态,从而提高了效率。A*需要额外计算启发式信息,但通常比BFS更...

    搜索专题——DFS

    在编程实现DFS时,通常使用栈来辅助存储当前的节点路径,或者使用递归函数来实现。对于有向图,DFS可以用于检测强连通分量、拓扑排序等;对于无向图,可以用来计算连通分量、寻找最短路径等。DFS虽然容易实现,但在...

    DFS算法解决野人过河问题.zip

    在实际编程实现时,可以使用栈来辅助DFS,每当遇到一个新的可行状态就将其压入栈中,然后继续探索其子状态。当没有更多状态可探索时,回溯到栈顶状态,尝试下一个未被尝试的动作。 为了优化搜索效率,可以考虑以下...

    DFS CDMA Tool

    DFS CDMA Tool是一款专为CDMA(码分多址)设备设计的专业工具,它具备了丰富的功能,包括DFS文件的固件下载、设备的ESN/...用户在使用过程中,应遵循文档指示,并确保对设备有足够的了解,以避免误操作导致的潜在问题。

    dfs 0-1背包

    标题中的“dfs 0-1背包”指的是使用深度优先搜索(DFS)算法来解决0-1背包问题。0-1背包问题是一个经典的组合优化问题,它在计算机科学和运筹学中有广泛的应用。在这个问题中,我们有一个背包,其容量为W,以及n件...

    DFS 文件高可用服务器搭建

    - 在fs02上使用PowerShell命令`Install-WindowsFeature FS-DFS-Namespace, FS-DFS-Replication, RSAT-DFS-Mgmt-Con`来安装DFS功能。 3. **创建DFS命名空间**: 在FS01上创建DFS命名空间,并指定一个易于理解的名称。...

    dfs实现迷宫问题求解

    dfs实现迷宫问题

    DFS 4.0.0.3

    在使用DFS 4.0.0.3时,首先需要确保你拥有正确的IMEI信息,这些信息通常可以在设备的原包装盒、电池下面或者通过设备的设置菜单找到。然后,通过USB数据线将设备连接到计算机,启动DFS工具,按照软件的指引进行操作...

Global site tag (gtag.js) - Google Analytics