codis安装部署(需要公司zip包)

本文介绍如何部署Zookeeper及Codis集群,包括硬件需求、软件安装步骤、配置文件详解及集群启动流程。适用于希望了解分布式系统部署细节的技术人员。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1      部署环境要求

硬件要求:内存64GB以上,数量3台及以上

Zookeeper节点为奇数个数,建议三个节点以上,Codis节点根据内存的大小以及存储数据量来估算,建议6个节点以上,以达到互备的效果,如下表格以最低要求为例:

 

组件类型

主机1

主机2

主机3

zookeeper

Node1

Node2

Node3

Codis/Group1

Master

Slave

N

Codis/Group2

N

Master

Slave

Codis/Group3

Slave

N

Master

1.1    安装Zookeeper及Codis

1.1.1  Zookeeper安装

 

将Zookeeper安装文件解压合适的目录,修改对应的配置文件,安装节点数应为奇数,具体步骤如下:

1)tar –zxvf zookeeper.x.x.x

2)cd zookeeper/conf(修改zoo.cfg配置文件)

tickTime=2000    

initLimit=5    

syncLimit=2

    

dataDir=/opt/beh/core/zookeeper/data    

dataLogDir=/opt/beh/core/zookeeper/logs 

maxClientCnxns=18192   

clientPort=2181  

server.1=xxxx:2888:3888  

server.2=xxxx:2888:3888   

server.3=xxxx:2888:3888 

参数说明:

tickTime: zookeeper中使用的基本时间单位, 毫秒值.

dataDir: 数据目录. 可以是任意目录.

dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.

clientPort: 监听client连接的端口号.

initLimit: zookeeper集群中的包含多台server, 其中一台为leader, 集群中其余的server为follower. initLimit参数配置初始化连接时, follower和leader之间的最长心跳时间. 此时该参数设置为5, 说明时间限制为5倍tickTime, 即5*2000=10000ms=10s.

syncLimit: 该参数配置leader和follower之间发送消息, 请求和应答的最大时间长度. 此时该参数设置为2, 说明时间限制为2倍tickTime,即4000ms.

server.X=A:B:C 其中X是一个数字, 表示这是第几号server.A是该server所在的IP地址. B配置该server和集群中的leader交换消息所使用的端口. C配置选举leader时所使用的端口.由于配置的是伪集群模式, 所以各个server的B, C参数必须不同.

 

3)将配置的zookeeper目录拷贝到其他机器相应的目录,并在对应dataDir目录下 新建myid文件,写入server.x对应的值(例如:server.0则写入0)。

4)启动相应的进程,cd zookeeper/bin  sh ZkServer.sh start

1.1.2  Codis安装

创建安装目录,解压安装文件,并修改对应的配置文件,步骤如下:

1.          添加redis部署专用用户:redis

useradd redis -d /data/redis(目录可自行选择)

为用户做免密:

ssh-keygen -t rsa  --生成.ssh目录

cd .ssh

touch authorized_keys --生成文件

chmod 640 authorized_keys

如果A免秘登录到B,那么将A的密码放到B的authorized_keys里边

2.          mkdir /opt/beh/core/codis

3.          在redis家目录解压安装包:unzip bonc-codis3.1.zip (可以不做之前的步骤,直接在这一步开始,在任意一个普通用户的家目录下解压缩

4.          进入bonc-codis3.1/etc目录修改对应的配置

a)config.ini配置文件

coordinator=zookeeper

zk=node1:2181,node2:2181,node3:2181 ---zookeeper地址

product=test ---数据库名称

dashboard_addr=node1:60010– dashboard页面地址(端口可自行指定)(注意这个端口可能会与hbase冲突)

dashboard_users=test@test– dashboard页面登录用户名密码(可自行指定)

记得吧最后一行的proxy_id=proxy_1,给删除了,如果被注释掉,那就不用管。

 

 

b)initslot.sh配置文件(主要配置slot)根据key将数据分布到不同的节点:

group_num=3---节点分组数,一般多少个节点就是多少组

step=341---slot共有1024块,step=1024/group_num

 

 

 

c)group.json节点分组配置,根据实际的需求做对应的配置,此次配置3个节点

{
  "codis-group": [
    {
      "group_id": 1,
      "nodes": [
        {"host": "192.168.0.1:6380", "type": "master"},
        {"host": "192.168.0.2:6381", "type": "slave"}
      ]
    },
    {
      "group_id": 2,
      "nodes": [
        {"host": "192.168.0.2:6380", "type": "master"},
        {"host": "192.168.0.3:6381", "type": "slave"}
      ]
    },
    {
      "group_id": 3,
      "nodes": [
        {"host": "192.168.0.3:6380", "type": "master"},
        {"host": "192.168.0.1:6381", "type": "slave"}
      ]
    }
  ]
}

备注:节点组、slot也可以通过dashboard页面动态调整

 

 

d)managelist配置集群节点信息,只需配置ip地址

 

 

e)配置proxy,进入bonc-codis3.1/,修改gen_start_proxy.sh,只需更改端口,端口可自行指定,前提是没有做网络限制。(一般不用管)

cat << EOF > ./tem/start_proxy.sh
#!/bin/bash
echo "start new proxy..."
nohup ../bin/codis-proxy --log-level warn -c ../etc/config.ini -L ../logs/proxy.log  --cpu=8 --addr=$1:8099--http-addr=$1:11000 &>/dev/null &
echo "done"
EOF

 

 

f)配置redis,进入bonc-codis3.1/source/etc/redis_conf目录,修改启用节点配置文件,只需更改内存配置(根据主机情况进行分配,一般物理机内存128G,redis可分配三分之二的内存,主备可分别分配45g)

maxmemory 45g

注意:这次要修改的是bonc-codis3.1/source/etc/redis_conf下的6380.conf,6381.conf

同时 修改: dir  ../../data  为dir /opt/beh/core/codis/data
 

 

在执行下一步之前,需要在各个节点创建/opt/beh/core/codis目录

 

5. 将配置文件分发各节点:进入目录bonc-codis3.1/执行脚本,当执行脚本时会提醒分发目录,如图:

sh install.sh

 

 

4.3 启动集群

1、随便选一台机器进到redis配置文件分发目录:(尽量选择,dashboard所在机器)

先把bonc-codis3.1/etc/initslot.sh 拷贝到 /opt/beh/core/codis/etc
然后执行 sh initslot.sh,过程可能有点长,然后在执行下一步。

a) cd /opt/beh/core/codis/sbin

b)sh start_cluster.sh (选择all,这一步可能会跟上一步冲突,如果冲突,可以在执行一次上一步,不过事先可能删除/zk/../fence 和proxy)

期间会有30秒时间等待。

c)集群起来之后观察进程是否起来:

ps-ef | grep codis

 

备注:启动dashboard的节点会有dashbosrd进程,ha进程;所有节点需启动6380/6381两个redis进程,proxy进程。

d)此时集群已安装完毕,切换到浏览器观察页面是否正常。

 

后记:先启动dashboard,再添加group,然后添加group,然后sh initslot.sh,然后启动proxy,ha

再后记:按照这样测试后,服务确实一下子起来了,不过codis/data/下没有6380.rdb和6381.rdb出现,为空,后来再次执行stop_cluster,然后start_cluster才ok,不知道问题出在那里。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值