• Linux 6.8 TFS(Taobao File System)使用文档-安装篇


    介绍
      TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据的存储;TFS使用C++语言开发,需要运行在64bit Linux OS上,本文介绍如何在Linux环境编译安装TFS。

    安装依赖的软件包

    • automake TFS基于automake工具构建
    • libtool automake需要使用libtool
    • realine 用于命令行编辑的库
    • libz-devel 用于数据压缩/解压缩
    • uuid-devel 用于生成全局唯一ID
    • tcmalloc google的内存管理库
      • 下载源码安装
      • apt-get install libgoogle-perftools-dev
      • yum install google-perftools.x86_64

     一、安装tb-common-utils

               TFS使用tb-common-utils软件包,tb-common-utils包含淘宝使用的基础系统库tbsys和网络库tbnet两个组件;安装tb-common-utils前需要设置环境变量TBLIB_ROOT,tbsys和tbnet将会被安装TBLIB_ROOT对应的路径(必须是绝对路径)下,TFS会在这个路径下查找tbsys、tbnet头文件和库。

     设置环境变量

    1.    在xshell中输入命令 vim ~/.bash_profile
    2.   最后一行添加:export TBLIB_ROOT=/usr/local/tb-common-utils(为最终安装路径)

    3. 保存退出
    4. 执行命令:source ~/.bash_profile 配置生效

    下载tb-common-utils源码

    # svn co -r 18 http://code.taobao.org/svn/tb-common-utils/trunk tb-common-utils
    

     

    下载目录:

    注意: 这里不要checkout最新版本,version18以后的修改导致部分接口不能前向兼容。 
    如果没有安装svn 则输入:
    yum install subversion 安装svn

    编译安装

    # cd tb-common-utils
    # sh build.sh
    # cd /usr/local/
    
    

     二、安装TFS

       TFS开源用户大都只使用TFS的基本功能,所以这个版本我们默认只编译TFS的nameserver,dataserver,client和tool,以去除对mysql的依赖,需要使用到rcserver(全局资源管理服务),metaserver(TFS自定义文件名服务)的用户请自行编译安装这两个服务。

       1、下载源码目录/root/

       

      2、编译安装

    # cd tfs
    # sh build.sh init
    # ./configure --prefix=/usr/local/tfs --with-release --without-tcmalloc    (安装到/usr/local/tfs目录) 
    # make 
    # make install
    

     3、安装成功后如图 

     

       

    编译FAQ

    Q: 使用TFS一定需要64bit Liunx?
    A: 是的,否则整个项目不能正常编译通过。
    
    Q: 编译TFS过程中出现出现类似tbnet.h:39: fatal error: tbsys.h: No such file or directory的错误提示?
    A: 需要先安装tb-common-utils软件包。
    
    Q: 在安装tb-common-utils过程中,提示设置please set TBLIB_ROOT varialbe first!!?
    A: 需要先设置TBLIB_ROOT环境变量,再编译安装tb-common-utils。
    
    Q: 编译过程中出现类似警告:格式 ‘%lu’ 需要类型 ‘long unsigned int’,但实参 3 的类型为 ‘size_t’ ?
    A: 你的机器使用的应该是32bit OS,如果你坚持要编译,可以自行修改代码或者直接忽略这些警告。
    
    Q: 执行./configure时,提示configure: error: readline header files not found, --disable-readline or install gnu readline library?
    A: 你需要安装readline库,或在configure时加上--disable-readline参数,不使用readline库。
    
    Q: 执行./configure时,提示configure: error: tcmalloc link failed (--without-tcmalloc to disable)?
    A: 你需要安装tcmalloc库, 或在configure时加上--without-tcmalloc参数,不使用tcmalloc库。
    
    Q: 编译过程中出现大量的错误信息,类似于warnings being treated as error?
    A: 请确认在./configure的时候是否加了--with-release参数。
    
    Q: 编译过程中提示类似client_request_server.cpp:722:38: error: no matching function for call to ‘atomic_inc(volatile uint64_t*)’的错误信息?
    A: 你的系统时32位的,请在64bit Linux编译安装TFS;因为32bit系统不支持对64bit整数的原子操作。
    
    Q: 编译时遇到session_util.cpp:2:23: fatal error: uuid/uuid.h: No such file or directory?
    A: 你需要先安装uuid库, 用于生成全局唯一ID, uuid库是e2fsprogs包工具的一部分;
    
    Q: 编译时提示tfs_meta_helper.cpp:15:18: fatal error: zlib.h: No such file or directory?
    A: 你需要先安装zlib,用于压缩/解压缩。
    Q:如果在编译时出现错误“uuid/uuid.h: No such file or directory”?
    A:安装 libuuid-devel 软件包 直接用yum命令安装:yum install libuuid-devel
    
    
    
  • 相关阅读:
    VScode出现无法打开“X”: 找不到文件(file:///XXXX) 的解决办法
    Re:0通过服务器自建内网穿透远程桌面(10分钟可完成)
    (补题 POJ 3013) Big Christmas Tree
    (补题 cf 1140)Detective Book
    (2019.9.5~2019.9.11)补题汇总(字符串相关)
    最小生成树(克鲁斯卡尔算法)
    最短路问题
    字符串匹配(部分整理)
    Linux内核分析——第八周学习笔记
    《Linux内核设计与实现》第四章读书笔记
  • 原文地址:https://www.cnblogs.com/zengdingding/p/9071923.html
Copyright © 2020-2023  润新知