更多关于redis的知识,请参考我的另一篇博客,redis的核心技术点,上面对redis的相关原理有详细的介绍。
一、集群准备
主节点:hadoop1:6379
,从节点:hadoop2:6379,hadoop3:6379
。
注意:我已经对域名和IP地址做了映射,如果大家没有做映射,则把域名理解成IP地址即可。
二、分别在三台实例上下载、解压、安装redis(略)
三、修改三台实例的配置文件
(具体行数,和配置文件的位置,根据大家安装的redis路径和版本不一样,大家自己查找即可。)
1、主节点hadoop1
在redis的配置文件6379.conf
中修改如下几个地方。
L70行,把允许接入的IP地址放开,让所有IP均可连接本机redis
bind 0.0.0.0
L508行,把注释去掉,让登陆redis并且操作数据的时候需要验证密码。
requirepass 123456
2、从节点hadoop2和hadoop3配置文件一样
分别在这两台实例在redis的配置文件6379.conf
中修改如下几个地方。
L70行,把允许接入的IP地址放开,让所有IP均可连接本机redis
bind 0.0.0.0
L508行,把注释去掉,让登陆redis并且操作数据的时候需要验证密码。
requirepass 123456
随便找个地方,把下面这些填进去(第一行的意思是,这台机器是hadoop的从节点,第二行是写入主redis的密码,第三行的意思是从节点只能读取,不能写入。)
slaveof hadoop1 6379
masterauth 123456
slave-read-only yes
四、验证结果
redis启动和停止的相关命令(不同版本的redis或者不同系统的命令可能有差异)
[root@hadoop1 ~]# systemctl start redis_6379.service
[root@hadoop1 ~]# systemctl stop redis_6379.service
[root@hadoop1 ~]# systemctl status redis_6379.service
1、重启三台实例的redis,再进入redis命令行操作
[root@hadoop1 ~]# systemctl stop redis_6379.service
[root@hadoop1 ~]# systemctl start redis_6379.service
[root@hadoop1 ~]# redis-cli
[root@hadoop2 ~]# systemctl stop redis_6379.service
[root@hadoop2 ~]# systemctl start redis_6379.service
[root@hadoop2 ~]# redis-cli
[root@hadoop3 ~]# systemctl stop redis_6379.service
[root@hadoop3 ~]# systemctl start redis_6379.service
[root@hadoop3 ~]# redis-cli
2、再hadoop1上输入密码验证,否则会报错,(error) NOAUTH Authentication required.。
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
此时,我们可以看出hadoop1上的redis没有任何数据。读者可以自行根据上面的方法查看hadoop2和hadoop3,也是一样的没有数据。
3、往hadoop1上的redis中写入数据
127.0.0.1:6379> set name "testName"
OK
127.0.0.1:6379> get name
"testName"
127.0.0.1:6379>
4、在hadoop2和hadoop3上的redis也获取name的值。
127.0.0.1:6379> auth 88916130
OK
127.0.0.1:6379> get name
"testName"
127.0.0.1:6379>
我们发现,现在在hadoop2和hadoop3上也可以获取name的值,说明我们的主从节点模式则部署成功了。