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++环境变量中即可。
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修改即可。