上一篇文章Tair入门教程(1):Tair介绍我们介绍了Tair的主要功能和使用场景,以及其架构和各部分组件的作用。
本文以CentOS为例,介绍如何搭建一个Tair环境,采用Zookeeper作为注册中心。
基于阿里云学生机CentOS 7.3系统
安装
参照官方开源的GitHub中的方法,我们采用编译源码的方式来安装tair。
安装步骤
1 | # clone 代码到本地 |
遇到的问题
上面安装步骤都很简单,看上去是分分钟就能安装完,但是在安装的时候还是会有各种各样的问题。这里记录一下我遇到的一个问题。1
2
3g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
经过谷歌,最终发现主要原因是内存不足,g++编译时需要大量内存,临时使用交换分区来解决吧1
2
3
4
5sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
上面三行命令临时挂载了一个64M的Swap内存。这样操作之后我就顺利编译完成了。
当然,编译完成后如果想卸载Swap内存,可以使用如下的命令1
2
3sudo swapoff /swapfile
sudo rm /swapfile
启动
部署配置
tair的运行, 至少需要一个 config server 和一个 data server。推荐使用两个config server 多个data server的方式。两个config server有主备之分。
tair有三个配置文件,分别是对config server、data server及group信息的配置,在tair_bin安装目录下的etc目录下有这三个配置文件的样例,我们将其复制一下,成为我们需要的配置文件。1
2
3cp configserver.conf.default configserver.conf
cp dataserver.conf.default dataserver.conf
cp group.conf.default group.conf
在配置之前,请查阅官网给出的配置文件字段详解,下面直接贴出我自己的配置并加以简单的说明。
配置ConfigServer
1 | # |
- 首先需要配置config server的服务器地址和端口号,端口号可以默认,服务器地址改成自己的,有一主一备两台configserver,这里仅为测试使用就设置为一台了。
log_file/pid_file
等的路径设置最好用绝对路径,默认的是相对路径,而且是不正确的相对路径(没有返回上级目录),因此这里需要修改。注意data文件和log文件非常重要,data文件不可缺少,而log文件是部署出错后能给你详细的出错原因。- dev_name很重要,需要设置为你自己当前网络接口的名称,默认为eth0。
配置data server
1 | # |
- config_server的配置与之前必须完全相同。
- 这里面的port和heartbeat_port是data server的端口号和心跳端口号,必须确保系统能给你使用这些端口号。一般默认的即可
- data文件、log文件等很重要,与前一样,最好用绝对路径
配置group信息
1 | #group name |
这个文件我只配置了data server列表,我只有一个dataserver,因此只需配置一个。
启动集群
在完成安装配置之后, 可以启动集群了. 启动的时候需要先启动data server 然后再启动cofnig server.
进入tair_bin目录后,按顺序启动:1
2sudo sbin/tair_server -f etc/dataserver.conf # 在dataserver端启动
sudo sbin/tair_cfg_svr -f etc/configserver.conf # 在config server端启动
执行启动命令后,在两端通过ps aux | grep tair
查看是否启动了,这里启动起来只是第一步,还需要测试看是否真的启动成功,通过下面命令测试:1
2
3
4
5
6
7sudo sbin/tairclient -c 172.17.68.153:5198 -g group_1
TAIR> put k1 v1
put: success
TAIR> put k2 v2
put: success
TAIR> get k2
KEY: k2, LEN: 2
其中172.17.68.153:5198是config server IP:PORT,group_1是group name,在group.conf里配置的。
遗留问题
按照上面的步骤,可以配置一个可用的Tair测试环境。但是,经过我的测试,这个集群只是在这台机器上可用,不能远程访问。参照网上的教程,把ip换成公网ip或者公网ip和私有ip混合的模式,都不行,不能远程访问。只能把程序发送到机器上去执行。