常用的华为FusionInsight C60U10中各组件的版本,以此作为兼容参考:
HDFS:2.7.2
Hive:1.3.0
HBase:1.0.2
Spark:1.5.1
Solr:5.3.1
Flume:1.6.0
Kafka:2.10-0.10.0.0
Storm:0.10.0
Hue:3.9.0
Redis:3.0.5
本文配置:Redhat6.5、JDK-jdk1.7.0_79 、Redis 3.2.7(Redis3.0开始支持cluster模式)
三节点配置和名称(主 6C18G、子4C16G):
192.168.111.140 HMASTER 192.168.111.141 HDATA01 192.168.111.142 HDATA02
计划的redis主从关系,示例图:
详细步骤如下
一、环境配置
1.下载安装包,http://download.redis.io/releases/redis-3.2.7.tar.gz (所有机器,应用用户hadoop即可)
安装包路径: /home/hadoop/BigData/redis-3.2.7
$ scp /home/hadoop/BigData/redis-3.2.7.tar.gz hadoop@HData01:/home/hadoop/BigData/ $ scp /home/hadoop/BigData/redis-3.2.7.tar.gz hadoop@HData02:/home/hadoop/BigData/
2.编译和安装(所有机器,root) 目标路径默认: /usr/local/
$ cd /home/hadoop/BigData/redis-3.2.7 $ make $ make install
二、配置各节点
3.登录所有机器,创建目录 (所有机器,建议root)
#step3.1 创建集群的目录和实例端口文件夹 mkdir -p /home/hadoop/BigData/redis_cluster/22400 mkdir -p /home/hadoop/BigData/redis_cluster/22401 mkdir -p /home/hadoop/BigData/redis_cluster/22402 mkdir -p /home/hadoop/BigData/redis_cluster/22403 #step3.2 移动配置文件 cp /home/hadoop/BigData/redis-3.2.7/redis.conf /home/hadoop/BigData/redis_cluster/22400 cp /home/hadoop/BigData/redis-3.2.7/redis.conf /home/hadoop/BigData/redis_cluster/22401 cp /home/hadoop/BigData/redis-3.2.7/redis.conf /home/hadoop/BigData/redis_cluster/22402 cp /home/hadoop/BigData/redis-3.2.7/redis.conf /home/hadoop/BigData/redis_cluster/22403 ##step3.3 修改配置文件,以redis_cluster/22400参考如下: bond 192.168.111.140 #物理IP port 22400 pidfile /home/hadoop/BigData/redis_cluster/redis_22400.pid daemonize yes #redis后台模式运行 cluster-enabled yes cluster-config-file nodes-22400.conf
4.启动redis instance(所有机器,应用用户hadoop),脚本/home/hadoop/redis_cluster/redis_start_node1.sh
#/home/hadoop/redis_cluster/redis_start_node1.sh 启动脚本 redis-server /home/hadoop/BigData/redis_cluster/22400/redis.conf redis-server /home/hadoop/BigData/redis_cluster/22401/redis.conf redis-server /home/hadoop/BigData/redis_cluster/22402/redis.conf redis-server /home/hadoop/BigData/redis_cluster/22403/redis.conf #/home/hadoop/redis_cluster/redis_kill.sh 停止脚本(如果想删除集群加上删除conf文件) ps -ef|grep redis-server|grep -v grep|cut -c 9-15|xargs kill -9 cd /home/hadoop/BigData/redis_cluster rm -f *conf
三、配置集群(只需要AP1即可,应用用户hadoop)
5.安装gem的ruby工具包 说明:安装ruby、rubygem有问题请看 [Linux] redhat安装ruby和gem详解
$ gem install redis
6.创建集群
$ /home/hadoop/BigData/redis-3.2.7/src/redis-trib.rb create --replicas 1 127.0.0.1:22400 192.168.111.140:22401 192.168.111.140:22402 192.168.111.140:22403 192.168.111.141:22400 192.168.111.141:22401 192.168.111.141:22402 192.168.111.141:22403 192.168.111.142:22400 192.168.111.142:22401 192.168.111.142:22402 192.168.111.142:22403
说明:replicas 1 表示 自动为每一个master节点分配一个slave节点 上面12个节点,会按照一定规则生成 6master 6slave
然后提示:Can I set the above configuration? (type ‘yes’ to accept): 输入 yes
之后等待即可,如下图会自动分配主从关系以及集群通讯
7.测试和验证集群
方法就是插入数据,然后看数据是否均匀分布了。这里登录 一个redis实例然后插入3条数据
统计各redis示例的keys数量,可发现是均匀分布了
这里得强调下redis是以哈希槽的概念来进行均匀分布的。
报错和问题解决:
1.安装redis在make的时候报错: undefined reference to `clock_gettime’
原因:clock_gettime在实时库(real time)里面,由于链接的时候没有链接这个库导致报错。
解决:打开/home/hadoop/BigData/redis-3.2.7/src/MakeFile,添加红线部分
2.redis-trib.rb create创建集群的时候,报错访问不到子节点端口、或者一直停留在waiting for sending message
需要对端口开放防火墙,我是直接关了
1.查看防火墙状态: /etc/init.d/iptables status 2.暂时关闭防火墙: /etc/init.d/iptables stop 3.禁止防火墙在系统启动时启动 /sbin/chkconfig --level 2345 iptables off 4.重启iptables: /etc/init.d/iptables restart 5.开放端口: 修改/etc/sysconfig/iptables文件,增加如下一行: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22400 -j ACCEPT 然后重启防火墙: # service iptables restart