基于Hadoop集群的Redis集群搭建以及自定义脚本运行

  1. 前期准备:hadoop集群
  2. Redis集群的搭建:
    这里以3台虚拟机,6个redis数据库为例
    1、 集群通信是通过“ping-pong”机制进行通信;
    2、 客户端不需要将所有的节点都连接上,只需要连接其中一个节点即可。
    3、 集群中存储数据是存储到一个个的槽中,集群中槽的个数是固定的:16384,槽的编号是【0-16383】。在集群中存储数据时,会根据key进行计算,计算出一个结果,然后将这个结果和16384取余,余数就是这个key将要存储的槽的编号。
    注意:槽的编号之间不能断开。
    槽的计算会将数据保存的很平均,不会产生一个槽满一个槽空的情况。
  3. 由于集群的脚本是用ruby语言编写的,所以需要准备ruby的环境
    10.3.1 Ruby环境准备
    需要ruby环境。搭建集群的脚本是ruby实现的。
    redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境:
    安装ruby
    yum install -y ruby
    yum install -y rubygems
    安装ruby和redis的接口程序
    拷贝redis-3.0.0.gem至/u!查看源码文件](F:\文档\Redis详解\查看源码文件.png)sr/local下
    执行:
    gem install /usr/local/redis-3.0.0.gem
  4. 机器准备
    集群环境最少要三台机器(master),每个主机都需要配置一个从机。即总共需要6台机器。
    6台机器的端口号如下:
    7001
    7002
    7003
    7004
    7005
    7006
vi /目录/redis.conf

在这里插入图片描述
修改端口号为自己指定的端口号
基于Hadoop集群的Redis集群搭建以及自定义脚本运行_第1张图片
将cluster-enable 的值改为yes(表示允许开启集合)

  1. 开启集群(这里用脚本实现)
vi start-redis-all.sh
cd /apps/cluster/redis/bin
./redis-server redis.conf
cd /apps/cluster/redis1/bin
./redis-server redis.conf
ssh mini2 "cd /apps/cluster/redis/bin;
./redis-server redis.conf;
cd /apps/cluster/redis1/bin;
./redis-server redis.conf"
ssh mini3 "cd /apps/cluster/redis/bin;
./redis-server redis.conf;
cd /apps/cluster/redis1/bin;
./redis-server redis.conf"

注意:
1.ssh mini2后会跳到mini2后会在本地执行,需要加“ ”,如果多条指令的话,指令之间加“;”间隔。
2.start-redis-all.sh的权限要修改为777chmod 777 start-redis-all.sh

开启集群:start-redis-all.sh
基于Hadoop集群的Redis集群搭建以及自定义脚本运行_第2张图片
看到这个说明成功

  1. 执行命令
    在src下执行:
cd /apps/redis-3.0.0/src/
./redis-trib.rb create --replicas 1 192.168.91.3:6400 192.168.91.3:6401 192.168.91.4:6402 192.168.91.4:6403 192.168.91.5:6404 192.168.91.5:6405
注意:这里的192.168.91.3 192.168.91.4 192.168.91.5必须是具体ip,使用主机名会报错

结果应该是

>>> Creating cluster
Connecting to node 127.0.0.1:7001: OK
Connecting to node 127.0.0.1:7002: OK
Connecting to node 127.0.0.1:7003: OK
Connecting to node 127.0.0.1:7004: OK
Connecting to node 127.0.0.1:7005: OK
Connecting to node 127.0.0.1:7006: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7003
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
Adding replica 127.0.0.1:7006 to 127.0.0.1:7003
10.4 连接集群
查看集群信息
M: e2669f9cef230acfe90f01e207a0d410a6dbb489 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: f8cf8ced81e5a111181d13ee8206dd39b3f46db4 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: c4e8a6615f4e8b2ba408207ac9a16de9af848420 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
S: 95a979b999f9cb7071763370f0c2a275abeabca9 127.0.0.1:7004
replicates e2669f9cef230acfe90f01e207a0d410a6dbb489
S: 2e40daf6cc502ca175115f92393ebc258818efe8 127.0.0.1:7005
replicates f8cf8ced81e5a111181d13ee8206dd39b3f46db4
S: d92e6a23ffadc2aa0f8d8b34ddc61f4c0ae29412 127.0.0.1:7006
replicates c4e8a6615f4e8b2ba408207ac9a16de9af848420
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join......
>>> Performing Cluster Check (using node 127.0.0.1:7001)
M: e2669f9cef230acfe90f01e207a0d410a6dbb489 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: f8cf8ced81e5a111181d13ee8206dd39b3f46db4 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: c4e8a6615f4e8b2ba408207ac9a16de9af848420 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
M: 95a979b999f9cb7071763370f0c2a275abeabca9 127.0.0.1:7004
slots: (0 slots) master
replicates e2669f9cef230acfe90f01e207a0d410a6dbb489
M: 2e40daf6cc502ca175115f92393ebc258818efe8 127.0.0.1:7005
slots: (0 slots) master
replicates f8cf8ced81e5a111181d13ee8206dd39b3f46db4
M: d92e6a23ffadc2aa0f8d8b34ddc61f4c0ae29412 127.0.0.1:7006
slots: (0 slots) master
replicates c4e8a6615f4e8b2ba408207ac9a16de9af848420
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

注意:如果连接不到的话可能是集群里面有数据,需要flush和reset再执行
  1. 查看节点
    随便进入一个节点,执行:cluster nodes
    基于Hadoop集群的Redis集群搭建以及自定义脚本运行_第3张图片

你可能感兴趣的:(BIGDATA)