介绍
  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源码

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

 

  1. 下载目录:

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

编译安装

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

 二、安装TFS

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

1、下载源码目录/root/

2、编译安装

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

3、安装成功后如图 

 

编译FAQ

  1. Q: 使用TFS一定需要64bit Liunx
  2. A: 是的,否则整个项目不能正常编译通过。
  3.  
  4. Q: 编译TFS过程中出现出现类似tbnet.h:39: fatal error: tbsys.h: No such file or directory的错误提示?
  5. A: 需要先安装tb-common-utils软件包。
  6.  
  7. Q: 在安装tb-common-utils过程中,提示设置please set TBLIB_ROOT varialbe first!!?
  8. A: 需要先设置TBLIB_ROOT环境变量,再编译安装tb-common-utils
  9.  
  10. Q: 编译过程中出现类似警告:格式 ‘%lu 需要类型 long unsigned int’,但实参 3 的类型为 size_t
  11. A: 你的机器使用的应该是32bit OS,如果你坚持要编译,可以自行修改代码或者直接忽略这些警告。
  12.  
  13. Q: 执行./configure时,提示configure: error: readline header files not found, --disable-readline or install gnu readline library?
  14. A: 你需要安装readline库,或在configure时加上--disable-readline参数,不使用readline库。
  15.  
  16. Q: 执行./configure时,提示configure: error: tcmalloc link failed (--without-tcmalloc to disable)?
  17. A: 你需要安装tcmalloc库, 或在configure时加上--without-tcmalloc参数,不使用tcmalloc库。
  18.  
  19. Q: 编译过程中出现大量的错误信息,类似于warnings being treated as error
  20. A: 请确认在./configure的时候是否加了--with-release参数。
  21.  
  22. Q: 编译过程中提示类似client_request_server.cpp:722:38: error: no matching function for call to atomic_inc(volatile uint64_t*)’的错误信息?
  23. A: 你的系统时32位的,请在64bit Linux编译安装TFS;因为32bit系统不支持对64bit整数的原子操作。
  24.  
  25. Q: 编译时遇到session_util.cpp:2:23: fatal error: uuid/uuid.h: No such file or directory
  26. A: 你需要先安装uuid库, 用于生成全局唯一ID, uuid库是e2fsprogs包工具的一部分;
  27.  
  28. Q: 编译时提示tfs_meta_helper.cpp:15:18: fatal error: zlib.h: No such file or directory
  29. A: 你需要先安装zlib,用于压缩/解压缩。
    Q:如果在编译时出现错误“uuid/uuid.h: No such file or directory”?
    A:安装 libuuid-devel 软件包 直接用yum命令安装:yum install libuuid-devel
  1.  

Linux 6.8 TFS(Taobao File System)使用文档-安装篇的更多相关文章

  1. TFS(Taobao File System)安装方法

    文章目录: 一.TFS(Taobao File System)安装方法 二.TFS(Taobao File System)配置dataServer.分区.挂载数据盘 三.TFS(Taobao File ...

  2. Linux操作系统报:read-only file system

    在对集群测试过程中发现系统中某一节点中的磁盘变成read-only file system,从而导致测试任务出错,从网上查找资料,找到以下解决方案: 这个报错的意思是硬盘属性变成只读,不可写入: VO ...

  3. Taobao File System

    TFS是淘宝针对海量非结构化数据存储设计的分布式系统,构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问.高可扩展.高可用.高性能.面向互联网服务. 特性 采用扁平化的数据组织结构 ...

  4. Linux系统启动错误 contains a file system with errors, check forced解决方法

    /dev/sda1 contains a file system with errors, check forced./dev/sda1: Inodes that were part of a cor ...

  5. linux开发板出现Read-only file system的解决办法

    @2018-11-29 创建文件夹出现如下提示 mkdir: can't create directory 'test': Read-only file system 使用命令 mount rw -o ...

  6. 资料收集:学习 Linux/*BSD/Unix 的 30 个最佳在线文档

    文章转自:https://linux.cn/article-10311-1.html 手册页(man)是由系统管理员和 IT 技术开发人员写的,更多的是为了作为参考而不是教你如何使用.手册页对于已经熟 ...

  7. 鸟哥的linux私房菜学习记录之查看帮助文档

    如何使用man查看帮助文件 man command例如man date 按下enter键之后会显示date帮助文件,指令后面会有一个代号 info的用法 关机的几个常用命令 shutdown,halt ...

  8. 找到个好的讲PYTHON FILE IO的文档,收藏

    现在我感觉快入门了哈, 这两天,可以用PYTHON写一点自己想要实现的东东了. 但文件,IO,编码,邮件,始终有点续不完全. 这个文档,我看行.. http://www.dabeaz.com/pyth ...

  9. 使用Wisdom RESTClient如何在Linux和Mac上获取测试报告和API文档?

    使用Wisdom RESTClient自动化测试REST API,生成REST API文档, 需要先执行命令java -jar restclient-1.2.jar启动Wisdom RESTClien ...

随机推荐

  1. Oracle 内连接和外连接

    内连接用于返回满足连接条件的记录:而外连接则是内连接的扩展,它不仅会返回满足连接条件的所有记录,而且还会返回满足不满足连接条件的记录!从Oracle9i开始,可以在From 子句中指定连接语法.语法如 ...

  2. css选择器语法速查

    通用选择器 *{} 类似于通配符,匹配文档中所有元素类型: 类型选择器 h1,h2,p{} 匹配以逗号隔开元素列表中的所有元素 类选择器 .glass{} or p.glass{} id选择器 #id ...

  3. eclipse下载指南

    官网下载地址 下载https://www.eclipse.org/downloads/ 官网https://www.eclipse.org/ 最新版本 Eclipse OXYGEN Eclipse O ...

  4. db2 查新索引 主键 sql

    1.查询主键 select * from sysibm.syskeycoluse where tbname='...' 2.查询索引 select * from sysibm.indexs where ...

  5. [坑况]——windows升级node最新版本报错【npm install -g n】

    我本来是下载一个vue-cli的,然后技术日新月异,告知我要先把我的node升级到8以上(目前是v6.1.13) 升级就升级,升级就报错 尝试第一种方法,网上最多的一种方法,估计也是成功最多的一种吧( ...

  6. STL容器的基本特性和特征

    1. STL有6种序列容器类型(1)vector它提供对元素的随即访问,在尾部添加和删除元素的时间是固定的,在头部或中部插入和删除元素的复杂度为线性时间.(2)deque在文件中声明.是双端队列,支持 ...

  7. 重构:以Java POI 导出EXCEL为例

    重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...

  8. Beta 冲刺day3

    1.昨天的困难,今天解决的进度,以及明天要做的事情 昨天的困难:昨天主要是对第三方与企业复杂的逻辑关系进行分析和优化,以及进行部分模块的功能测试和代码测试. 今天解决的进度:根据前天得到的需求问题进行 ...

  9. 用分支限界法解决人员安排问题(Personnel assignment problem)

    最近考期博主比较忙,先把思路简单说说,图和代码考完试补. 人员安排问题,即给出员工集合和工作集合,寻找最合理的安排. 对于员工集合P,员工集合会依据某个f来给出某种顺序,需要按该顺序P(i)进行工作安 ...

  10. python 正则表达式Re

    Python正则表达式指南这篇文章很好,推荐阅读. 本文则是简单记录下我自己学习Re的笔记, 环境是python3.5. 1.简单的Re语法 ^ 匹配字符串开始位置. $ 匹配字符串结束位置. \b ...