Linux 6.8 TFS(Taobao File System)使用文档-安装篇
介绍
TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据的存储;TFS使用C++语言开发,需要运行在64bit Linux OS上,本文介绍如何在Linux环境编译安装TFS。
安装依赖的软件包
- automake TFS基于automake工具构建
- 下载源码安装
- apt-get install automake
- yum install automake.noarch
- libtool automake需要使用libtool
- 下载源码安装
- apt-get install libtool
- yum install libtool.x86_64
- realine 用于命令行编辑的库
- 下载源码安装
- apt-get install libreadline-dev
- yum install readline-devel.x86_64
- libz-devel 用于数据压缩/解压缩
- 下载源码安装
- apt-get install zlib1g-dev
- yum install zlib-devel.x86_64
- uuid-devel 用于生成全局唯一ID
- 下载源码安装
- apt-get install uuid-dev
- yum install e2fsprogs-devel.x86_64
- 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头文件和库。
设置环境变量
- 在xshell中输入命令 vim ~/.bash_profile
最后一行添加:export TBLIB_ROOT=/usr/local/tb-common-utils(为最终安装路径)
- 保存退出
- 执行命令: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
Linux 6.8 TFS(Taobao File System)使用文档-安装篇的更多相关文章
- TFS(Taobao File System)安装方法
文章目录: 一.TFS(Taobao File System)安装方法 二.TFS(Taobao File System)配置dataServer.分区.挂载数据盘 三.TFS(Taobao File ...
- Linux操作系统报:read-only file system
在对集群测试过程中发现系统中某一节点中的磁盘变成read-only file system,从而导致测试任务出错,从网上查找资料,找到以下解决方案: 这个报错的意思是硬盘属性变成只读,不可写入: VO ...
- Taobao File System
TFS是淘宝针对海量非结构化数据存储设计的分布式系统,构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问.高可扩展.高可用.高性能.面向互联网服务. 特性 采用扁平化的数据组织结构 ...
- 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 ...
- linux开发板出现Read-only file system的解决办法
@2018-11-29 创建文件夹出现如下提示 mkdir: can't create directory 'test': Read-only file system 使用命令 mount rw -o ...
- 资料收集:学习 Linux/*BSD/Unix 的 30 个最佳在线文档
文章转自:https://linux.cn/article-10311-1.html 手册页(man)是由系统管理员和 IT 技术开发人员写的,更多的是为了作为参考而不是教你如何使用.手册页对于已经熟 ...
- 鸟哥的linux私房菜学习记录之查看帮助文档
如何使用man查看帮助文件 man command例如man date 按下enter键之后会显示date帮助文件,指令后面会有一个代号 info的用法 关机的几个常用命令 shutdown,halt ...
- 找到个好的讲PYTHON FILE IO的文档,收藏
现在我感觉快入门了哈, 这两天,可以用PYTHON写一点自己想要实现的东东了. 但文件,IO,编码,邮件,始终有点续不完全. 这个文档,我看行.. http://www.dabeaz.com/pyth ...
- 使用Wisdom RESTClient如何在Linux和Mac上获取测试报告和API文档?
使用Wisdom RESTClient自动化测试REST API,生成REST API文档, 需要先执行命令java -jar restclient-1.2.jar启动Wisdom RESTClien ...
随机推荐
- ES6之let命令
ES6新增了let命令,用来声明变量.它的用法类似于var. let和var声明变量的区别: 1.let声明的变量,只在let命令所在的代码块内有效,出了这个块级作用域就不起作用 先看一个例子: { ...
- Oracle 10g DG 数据文件迁移
背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来. 环境:Oracle 10.2.0.5 DG 单机 首先 ...
- 怎么分别javascript写在<head>里还是<body>里面?
怎么分别javascript写在<head>里还是<body>里面? 具体哪些语句写在<body>里,哪些语句写在<head>里 满意答案 BeginN ...
- IBATIS的优缺点
ibatis优缺点总结 .优点 简单: 易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现. 实用: 提供了数据映射功能,提供了对底层数据访问的封装(例如ado.net),提供 ...
- SpringBoot入门之简单配置
今天下载了<JavaEE开发的颠覆者SpringBoot实战>这本书,发现Spring还有好多遗漏的部分,算是又恶补了一下,今天主要是学习下SpringBoot的配置. 一.基本配置 1. ...
- goquery 添加header 发起请求
goquery 添加header 发起请求 我们知道使用net/http 很容易发起GET or POST 请求:并且在发起http请求时候,可以很容易的对header进行干预 例如: client ...
- Ocelot中文文档-不支持
Ocelot不支持一下几点... 分块编码 - Ocelot将始终获取body大小并返回Content-Length头. 如果这不适合你的场景,只能表示抱歉! 转发host头 - 您发给Ocelot的 ...
- Java面试题全集(上-中-下)及Java面试题集(1-50/51-70)
阅读量超百万级的文章,收藏并分享一下.感谢原创作者的总结 对初中级java开发人员有特别大的帮助,不论是技术点面试还是知识点总结上. Java面试题全集(上): https://blog.cs ...
- Rafy 领域实体框架简介
按照最新的功能,更新了最新版的<Rafy 领域实体框架的介绍>,内容如下: 本文包含以下章节: 简介 特点 优势 简介 Rafy 领域实体框架是一个轻量级 ORM 框架. 与一般的 ORM ...
- ElasticSearch Index 速度优化 (官方翻译)
使用Bulk请求进行Index Bulk请求将产生比单文档index请求有更好的性能.至于Bulk请求中文档数量的大小,建议使用单一节点单一分片进行测试,先试试看100个,然后200个,然后400这样 ...