开源分布式系统-TFS-安装及使用简介

本文档详细介绍了如何在CentOS上安装TFS分布式系统,包括VMware Workstation的安装,CentOS的环境配置,以及TFS的依赖安装和系统配置。在安装过程中,详细列出了各个必要的依赖包及其安装方法,如mysql-devel, zlib-devel等。在使用部分,涵盖了NS和DS的配置与启动,以及监控和文件操作测试。" 131485839,18784123,MATLAB实现BP神经网络数据预测教程,"['神经网络', '开发语言', '数据预处理', '机器学习', 'MATLAB编程']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

注意事项

1) 由于TFS内部并未在32机器上做过测试,因此我们要用64位来安装;
2)安装过程中,如发现缺失某些库,直接用yum list xxx 来查看是否已经安装;
3)当前TFS版本已经升级至2.6.x,但新版本依赖tair(淘宝的缓存开源系统,类似MemCache)

环境配置

1)已经安装了VMware虚拟机工具软件(可以使用其它虚拟机,例如:Visual Box (oracle))
2)操作系统:CentOS 5.9 (64 位/虚拟机,选择这个版本,是因其gcc版本是4.1.2,TFS严格要求GCC版本);
3)TFS:release-2.2.16(svn:http://code.taobao.org/svn/tfs/tags/release-2.2.16/);

安装步骤

  1. 安装虚拟机:
    a)首先下载安装VMware Workstation,安装对应64位的CentOS
    VMware Workstatic(SN:0F63E-20HEM-4ZC49-RKC5M-A22HY)
    
    http://mirrors.sohu.com/centos/5.9/isos/x86_64/

    b)安装完成后,用如下命令更新:yum update
    c)设置为 静态IP,便于后续管理
  2. 检查并安装依赖:
    依赖1)mysql-devel:
    确保版本大于5.1.40,直接从mysql官方网站下载对应版本
    wget -c http://cdn.mysql.com/Downloads/MySQL-5.5/MySQL-devel-5.5.35-1.rhel5.x86_64.rpm
    wget -c http://cdn.mysql.com/Downloads/MySQL-5.5/MySQL-client-5.5.35-1.rhel5.x86_64.rpm
    sudo rpm -ivh Mysql-devel-5.5.35-1.rhel5.x86_64.rpm MySQL-client-5.5.35-1.rhel5.x86_64.rpm
    
    依赖2)zlib-devel
    sudo yum list zlib-devel //查看对应的版本信息
    sudo yum install zlib-devel.x84_64 //安装  
    
    依赖3)uuidd
    sudo yum list uuidd //查看对应的版本信息
    sudo yum install uuidd.x86_64 //安装
    
    依赖4)readline-devel
    sudo yum list readline-devel //查看对应的版本信息
    sudo yum install readline-devel.x86_64 //安装
    
    依赖5)ncurses-devel
    sudo yum list ncurses-devel //查看对应的版本信息
    sudo yum install ncurses-devel.x86_64 //安装
    
    依赖6)e4fsprogs-devel
    sudo yum list e4fsprogs-devel //查看对应的版本信息
    sudo yum install e4fsprogs-devel.x86_64 //安装
    
    依赖7)boost-devel
    sudo yum list boost-devel //查看对应的版本信息
    sudo yum install boost-devel.x86_64 //安装
    依赖8)snappy-devel
    wget -c https://snappy.googlecode.com/files/snappy-1.1.1.tar.gz
    tar -zxvf snappy-1.1.1.tar.gz
    cd snappy-1.1.1
    ./configure
    make
    sudo make install
    				
    依赖9)e2fsprogs
    sudo yum list e2fsprogs//查看对应的版本信息
    sudo yum install e2fsprogs.x86_64 //安装
    依赖10)jemall
    wget -c http://www.canonware.com/download/jemalloc/jemalloc-3.3.0.tar.bz2//下载
    bzip2 -d jemalloc-3.3.0.tar.bz2
    tar -xvf jemalloc-3.3.0.tar 
    cd jemalloc-3.3.0
    ./configure 
    make
    sudo make install
    
    依赖11)tb-common-utils //要使用版本18分支
    svn checkout -r 18 http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils
    //begin 添加TBLIB_ROOT环境变量
    vi .bash_profile 
    TBLIB_ROOT=$HOME/lib
    export TBLIB_ROOT
    //end 添加TBLIB_ROOT环境变量
    cd tb-common-utils 
    ./build.sh //编译安装,比较耗时
    
  3. 安装TFS
    1)下载
    svn checkout http://code.taobao.org/svn/tfs/tags/release-2.2.16/ tfs-2.2.16
    cd tfs-2.2.16
    ./build.sh init
    
    2)安装
    ./configure --prefix=/home/yuyj/software/tfs --without-tcmalloc
    make
    make install 
    

安装过程遇到的问题:

1)安装过程提示找不到mysql对应的库
/usr/bin/ld: cannot find -lmysqlclient_r
collect2: ld returned 1 exit status
make[2]: *** [rcserver] Error 1
make[2]: Leaving directory `/home/yuyj/Setup/TFS/tfs-2.2.16/src/rcserver'

这个是由于我们安装的mysqlclient是默认到位置/usr/lib64/mysql/libmysqlclient_r.a,建立如下软链:
 
cd /usr/local/lib
sudo ln -s /usr/lib64/mysql/libmysqlclient_r.a libmysqlclient_r.a

使用

环境准备

1) 在安装章节中,我们已经成功安装了一台TFS,利用VMware的克隆机制,我们再克隆出另外两台服务器,即有如下三代服务器:
NS Server : S128(192.168.177.128)
DS Server1 : S129(192.168.177.129)
DS Server2 : S130(192.168.177.130)
2)在DS服务器上(S129,S130)要准备好独立的磁盘,磁盘空间至少4G

NS配置与启动

DS配置与启动

监控

文件操作测试

参考

TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据。 目前,国内自主研发的文件系统可谓凤毛麟角。淘宝在这一领域做了有效的探索和实践,Taobao File System(TFS)作为淘宝内部使用的分布式文件系统,针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据存储。 文章首先概括了TFS的特点:最近,淘宝核心系统团队工程师楚材(李震)在其官方博客上撰文(《TFS简介》,以下简称文章)简要介绍了TFS系统的基本情况,引起了社区的关注。 完全扁平化的数据组织结构,抛弃了传统文件系统的目录结构。 在块设备基础上建立自有的文件系统,减少EXT3等文件系统数据碎片带来的性能损耗。 单进程管理单块磁盘的方式,摒除RAID5机制。 带有HA机制的中央控制节点,在安全稳定和性能复杂度之间取得平衡。 尽量缩减元数据大小,将元数据全部加载入内存,提升访问速度。 跨机架和IDC的负载均衡和冗余安全策略。 完全平滑扩容。 当前,TFS在淘宝的应用规模达到“数百台PCServer,PB级数据量,百亿数据级别”,对于其性能参数,楚材透漏: TFS在淘宝的部署环境中前端有两层缓冲,到达TFS系统的请求非常离散,所以TFS内部是没有任何数据的内存缓冲的,包括传统文件系统的内存缓冲也不存在......基本上我们可以达到单块磁盘随机IOPS(即I/O per second)理论最大值的60%左右,整机的输出随盘数增加而线性增加。 TFS的逻辑架构图1如下所示: 图1. TFS逻辑架构图(来源:淘宝核心系统团队博客) 楚材结合架构图做了进一步说明: TFS尚未对最终用户提供传统文件系统API,需要通过TFSClient进行接口访问,现有JAVA、JNI、C、PHP的客户端 TFS的NameServer作为中心控制节点,监控所有数据节点的运行状况,负责读写调度的负载均衡,同时管理一级元数据用来帮助客户端定位需要访问的数据节点 TFS的DataServer作为数据节点,负责数据实际发生的负载均衡和数据冗余,同时管理二级元数据帮助客户端获取真实的业务数据。 标签:分布式  阿里巴巴
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值