淘宝分布式 key/value 存储引擎Tair安装部署过程及Java客户端测试一例

目录


1. 简介

2. 安装步骤及问题小记

3. 部署配置

4. Java客户端测试

5. 参考资料


声明


1. 下面的安装部署基于Linux系统环境:centos 6(64位),其它Linux版本可能有所差异。

2. 网上有人说tair安装失败可能是因为gcc版本问题,高版本的gcc可能不支持某些特性导致安装失败,经过实验证明,该说法是错误的,tair安装失败有各种可能的原因但绝对与gcc版本无关,比如我的gcc开始版本为4.4.7,后来tair安装失败,我重新编译低版本的gcc(gcc4.1.2),但是问题同样出现。后来发现是其它原因,修正后重新用高版本gcc4.4.7安装成功。

3. 下面的内容部分参考tair官方介绍文档,转载请注明原文地址。


正文


1. 简介


tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, tair 可以配置数据的备份数目, tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其余的备份会继续提供服务.


2. 安装步骤及问题小记


2.1 安装步骤

由于tair的实现用到了底层库 tbsys 和 tbnet,因此在安装tair之前需要先安装依赖库 tbsys 和 tbnet。


2.1.1 获取源代码

首先需要通过svn下载源码,可以通过sudo yum install subversion安装svn服务。


  
  
  
  1. svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils # 获取tbsys 和 tbnet的源代码
  2. svn checkout http://code.taobao.org/svn/tair/trunk/ tair # 获取tair源代码

2.1.2 安装依赖库或软件
编译tair或tbnet/tbsys之前需要预先安装一些编译所需的依赖库或软件。
在安装这些依赖之前最好首先检查系统是否已经安装,在用rpm管理软件包的os上可以使用 rpm -q 软件包名查看是否已安装该软件或库。

a. 安装libtool

   
   
   
sudo yum install libtool # 同时会安装libtool所依赖的automake和autoconfig
b. 安装boost-devel库

    
    
    
sudo yum install boost-devel
c. 安装zlib库

    
    
    
sudo yum install zlib-devel
2.1.3 编译安装tbsys和tbnet
  1. tair 的底层依赖于tbsys库和tbnet库, 所以要先编译安装这两个库.

  2. a. 设置环境变量 TBLIB_ROOT 
取得源代码后, 先指定环境变量 TBLIB_ROOT 为需要安装的目录. 这个环境变量在后续 tair 的编译安装中仍旧会被使用到. 
比如要安装到当前用户的lib目录下, 则指定export TBLIB_ROOT="~/lib"。

b. 安装
进入源码目录, 执行build.sh进行安装. 

  1. 2.1.4 编译安装tair
进入 tair 源码目录,依次按以下顺序编译安装
./bootstrap.sh
./configure  # 注意, 在运行configue的时候, 可以使用 --with-boost=xxxx 来指定boost的目录. 使用--with-release=yes 来编译release版本.
make
make install
安装成功后会在当前用户home目录下生成文件夹tair_bin,即tair的安装成功后的目录。

2.2 问题小记

安装过程并不是一帆风顺的,期间出现了很多问题,在此简单记录以供参考。

2.2.1 g++未安装

   
   
   
checking for C++ compiler default output file name...
configure: error: in `/home/config_server/tair/tb-common-utils/tbnet':
configure: error: C++ compiler cannot create executables
See `config.log' for more details.
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target `install'. Stop.
说明安装了gcc但未安装g++,而tair是用C++开发的,因此只能用g++编译,通过过 sudo yum install gcc-c++安装即可。

2.2.2 头文件路径错误

   
   
   
In file included from channel.cpp:16: tbnet.h:39:19: error: tbsys.h: No such file or directory databuffer.h: In member function 'void tbnet::DataBuffer::expand(int)': databuffer.h:429: error: 'ERROR' was not declared in this scope databuffer.h:429: error: 'TBSYS_LOG' was not declared in this scope socket.h: At global scope: socket.h:191: error: 'tbsys' has not been declared socket.h:191: error: ISO C++ forbids declaration of 'CThreadMutex' with no type socket.h:191: error: expected ';' before '_dnsMutex' channelpool.h:85
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值