redis 在CentOS6.5_64下集群搭建


在三台CentOS6.5_64机器上分别安装redis-3.2.6.tar.gz,每台机器有两个端口7001,7002,创建6个redis节点,3个为主节点,3个为从节点
主机名主机IP端口
hadoop1192.168.1.1027001
hadoop1192.168.1.1027002
hadoop2192.168.1.1037001
hadoop2192.168.1.1037002
hadoop3192.168.1.1047001
hadoop3192.168.1.1047002

安装部署

从官网(http://redis.io/download)下最新redis包redis-3.2.6.tar.gz
上传到服务器hadoop1上的 /home/hadoop/upload下面
解压
#tar -zxvf redis-3.2.6.tar.gz
移动到/user/local下面
#mv redis-3.2.6 /user/local
将解压后的目录发送到其它两台机子上
#scp -r /usr/local/redis-3.2.6 hadoop2:/usr/local
#scp -r /usr/local/redis-3.2.6 hadoop3:/usr/local
分别安装编译三台机子上的redis
#cd redis-3.2.6
#make && make install

创建目录redis-cluster
#mkdir redis-cluster
继续创建以端口为名称的文件夹
#mkdir redis-cluster/7001
#mkdir redis-cluster/7002

创建数据文件目录
#mkdir /root/redis-data/7001
#mkdir /root/redis-data/7002

创建存放pid目录
#mkdir /var/redis-run/7001
#mkdir /var/redis-run/7002

将redis配置文件复制到 redis-cluster/7001 和 redis-cluster/7002下面
#cd /usr/local/redis-3.2.6
#cp redis.conf redis-cluster/7001
#cp redis.conf redis-cluster/7002
分别修改7001 和 7002下面的配置文件
#vi redis-cluster/7001/redis.conf
修改配置文件中下面的选项:
daemonize yes    设置为后台启动
cluster-enabled yes   允许redis 支持集群模式
cluster-config-file nodes-6379.conf     节点配置文件
cluster-node-timeout 15000  节点超时毫秒
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志 
port 12003    
dir /root/redis-data/7001  数据目录
pidfile /var/redis-run/run/redis/redis_6379.pid
bind 0.0.0.0
protected mode no

将redis-cluster发送到hadoop2和hadoop3
#cd /usr/local/redis-3.2.6
#scp -r redis-cluster hadoop2:/usr/local/redis-3.2.6/
#scp -r redis-cluster hadoop3:/usr/local/redis-3.2.6/

将数据文件redis-data目录发送到hadoop2和hadoop3
#scp -r /root/redis-data hadoop2:/root/
#scp -r /root/redis-data hadoop3:/root/

将存放pid的 /var/redis-run 目录发送到hadoop2和hadoop3
#scp -r /var/redis-run hadoop2:/var
#scp -r /var/redis-run hadoop3:/var

分别启动6个redis
#/usr/local/bin/redis-server /usr/local/redis-3.2.6/redis-cluster/7001/redis.conf
#/usr/local/bin/redis-server /usr/local/redis-3.2.6/redis-cluster/7002/redis.conf

使用命令查看redis 的启动情况ps -ef|grep redis
netstat -tnlp|grep redis 可以看到redis 监听的端口
[root@hadoop1 src]# netstat -tnlp|grep redis
tcp 0 0 0.0.0.0:7001 0.0.0.0:* LIST EN 2691/redis-server 0
tcp 0 0 0.0.0.0:7002 0.0.0.0:* LIST EN 2695/redis-server 0
tcp 0 0 0.0.0.0:17001 0.0.0.0:* LIST EN 2691/redis-server 0
tcp 0 0 0.0.0.0:17002 0.0.0.0:* LIST

启动集群(这里很麻烦,花费了很长时间)
src/redis-trib.rb create --replicas 1 192.168.1.102:7001 192.168.1.102:7002 192.168.1.103:7001 192.168.1.103:7002 192.168.1.104:7001 192.168.1.104:7002

启动集群会报错 /usr/bin/env: ruby: No such file or directory
需要安装ruby
我使用的是镜像挂载:
#install yum ruby

再次启动报错,提示缺少rubygem
需要下载rubygems-2.6.8安装
#tar zxvf rubygems-2.6.8
#cd rubygems-2.6.8
# ruby setup.rb
报错
ERROR: While executing gem ... (Gem::DocumentError)
RDoc is not installed: no such file to load -- rdoc/rdoc
安装rdoc
#yum install rdoc

[root@hadoop3 rubygems-2.6.8]# gem install redis
ERROR: While executing gem ... (Errno::ECONNREFUSED)
Connection refused - recvfrom(2)
上网手动下载redis-3.2.1.gem

#gem install -l ./redis-3.2.1.gem
[root@hadoop3 local]# gem install -l ./redis-3.2.1.gem
Successfully installed redis-3.2.1
Installing ri documentation for redis-3.2.1
/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
Done installing documentation for redis after 3 seconds
1 gem installed

再次启动集群,啊 终于成功了

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.1.104:7001
192.168.1.103:7001
192.168.1.102:7001
Adding replica 192.168.1.103:7002 to 192.168.1.104:7001
Adding replica 192.168.1.104:7002 to 192.168.1.103:7001
Adding replica 192.168.1.102:7002 to 192.168.1.102:7001

错误笔记

1. jemalloc/jemalloc.h: No such file or directory

说关于分配器allocator, 如果有MALLOC  这个 环境变量, 会有用这个环境变量的 去建立Redis。
而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数。
解决办法
make MALLOC=libc

2. make: Warning: File `Makefile.dep' has modification time 1e+07 s in the future  
发现是系统时间不一致,我桌面上的虚拟机是一直都是休眠的,因此时间不同步,使用date命令把时间设置成当前时间
date -s 06/22/2013  
date -s 09:39:00 

3.启动集群报错 /usr/bin/env: ruby: No such file or directory
需要安装 ruby


4.执行gem install redis

/usr/local/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
from /usr/local/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from src/redis-trib.rb:25:in `<main>'

需要下在redis.3.2.1.gem

安装
#gem install -l ./redis-3.2.1.gem

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页