CentOS配置Tair
先用 yum 安装依赖包和构件工具
yum install -y svn automake autoconf libtool vim gcc gcc-c++ gdb zlib-devel boost-devel
获取tair和tb-common-utils的源码
svn checkout http://code.taobao.org/svn/tb-common-utils/trunk/ tb-common-utils
svn checkout http://code.taobao.org/svn/tair/trunk/ tair
设置库文件的安装目录
# 在.bashrc中添加
export TBLIB_ROOT="/root/lib"
# 在用户根目录下执行
source .bashrc
编译安装
# 编译安装 tb-common-utils
cd ~/tb-common-utils
./build.sh
# 编译安装 Tair
cd ~/tair
./bootstrap.sh
# 注意, 在运行configue的时候, 可以使用 --with-boost=xxxx 来指定boost的目录. 使用--with-release=yes 来编译release版本.
./configure --with-release=yes
make
make install
修改Tair配置文件
# 进入 tair 目录
cd ~/tair_bin
# 复制配置文件
cp etc/configserver.conf.default etc/configserver.conf
cp etc/group.conf.default etc/group.conf
cp etc/dataserver.conf.default etc/dataserver.conf
1.vim etc/configserver.conf
#
# tair 2.3 --- configserver config
#
[public]
# 修改为本机IP及端口
config_server=X.X.X.X:5198
config_server=X.X.X.X:5198
[configserver]
port=5198
log_file=logs/config.log
pid_file=logs/config.pid
log_level=warn
group_file=etc/group.conf
data_dir=data/data
dev_name=eth0
2.vim etc/group.conf
# data center A
_server_list=X.X.X.X:5191 # 改为本机ip端口
#quota info
_areaCapacity_list=0,1124000;
3.vim etc/dataserver.conf
#
# tair 2.3 --- tairserver config
#
[public]
# 修改服务器ip端口
config_server=X.X.X.X:5198
#config_server=192.168.1.2:5198
启动Tair服务
# 设置 tmpfs 运行大小
./set_shm.sh
# 启动 DataServer
./tair.sh start_ds
# 启动 ConfigServer
./tair.sh start_cs
# 检查下进程在否
pgrep -lf tair
C++客户端连接和读写测试
sbin/tairclient -c X.X.X.X:5198 -g group_1
常见问题
1.tb-common-utils编译找不到头文件tbsys.h: No such file or directory
原因:因为tbnet和tbsys在两个不同的目录,但它们的源码文件里头文件的互相引用却没有加绝对或相对路径,将两个目录的源码加入到C++环境变量中即可。
解决办法:在.bashrc
文件中修改c++环境变量
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/root/tb-common-utils/tbsys/src:/root/tb-common-utils/tbnet/src
export CPLUS_INCLUDE_PATH
2.tb-common-utils编译语法报错tblog.cpp:323:1: error: 'tbsys::CLogger::CLogger' names the constructor, not the type
原因:gcc版本与语法不兼容。
解决办法1:
修改/root/tb-common-utils/tbsys/src/tblog.cpp
源码,第323行修改为CLogger& CLogger::getLogger(void)
,亲测可用;
解决办法2:
降级gcc版本为4.1.2
3.启动dataserver报错
原因:未知
解决办法:修改dataserver存储模式,由内存存储(mdb)改为磁盘存储(fdb)
# 编辑/root/tair_bin/etc/dataserver.conf
# 设置
storage_engine=fdb
4.configserver启动无反应
原因:在/root/tair_bin/logs/config.log
日志中发现ip配置错误
解决办法:注意区别内外网IP,在/root/tair_bin/etc/
将服务器ip修改即可。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。