集群

Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题

半腔热情 提交于 2019-11-29 03:40:19
Redis复制流程概述 Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了 Redis的复制功能,就一定会有内存快照发生,那么首先要注意你的系统内存容量规划,原因可以参考我上一篇文章中提到的Redis磁盘IO问题。 Redis复制流程在Slave和Master端各自是一套状态机流转,涉及的状态信息是: Slave 端: REDIS_REPL_NONE REDIS_REPL_CONNECT REDIS_REPL_CONNECTED Master端: REDIS_REPL_WAIT_BGSAVE_START REDIS_REPL_WAIT_BGSAVE_END REDIS_REPL_SEND_BULK REDIS_REPL_ONLINE 整个状态机流程过程如下: Slave端在配置文件中添加了slave of指令,于是Slave启动时读取配置文件,初始状态为REDIS_REPL_CONNECT。 Slave端在定时任务serverCron(Redis内部的定时器触发事件)中连接Master,发送sync命令,然后阻塞等待master发送回其内存快照文件(最新版的Redis已经不需要让Slave阻塞)。 Master端收到sync命令简单判断是否有正在进行的内存快照子进程,没有则立即开始内存快照

日志收集系统之redis高可用集群搭建

走远了吗. 提交于 2019-11-28 23:07:45
为了搭建日志收集系统LEK,需要搭建一套Redis高可用集群,确保日志正常从各个应用服务器流转到ElasticSeach服务器,最终通过Kabana显示出来。Redis高可用集群采用redis自带的sentinel实现,具有主备和故障转移功能。 一、安装环境说明 两台机器:master(192.168.2.52),slave(192.168.2.53) 操作系统:CentOS 6.5 Redis:2.8.17,下载地址:http://download.redis.io/releases/redis-2.8.17.tar.gz 二、安装Redis 安装前准备 1、安装c++编译器 yum install gcc-c++ 2、安装依赖tcl yum install -y tcl 安装 1、下载 wget http://download.redis.io/releases/redis-2.8.17.tar.gz 2、解压 tar -zxvf redis-2.8.17.tar.gz 3、安装 先创建一个软链接,然后进入链接目录,安装。 ln -s redis-2.8.17 redis cd redis make install 安装完成之后,在/usr/local/bin目录下会出现redis相关的脚本文件(不包含redis-sentinel.sh)。如下图所示: 配置 1、创建相关目录

windows redis 集群搭建(三)

依然范特西╮ 提交于 2019-11-28 23:07:13
一、redis数据分片的原理 Redis 集群没有使用一致性hash, 而是引入了 哈希槽 的概念. Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽,举个例子,比如当前集群有3个节点,那么: 节点 A 包含 0 到 5500号哈希槽. 节点 B 包含5501 到 11000 号哈希槽. 节点 C 包含11001 到 16384号哈希槽. 这种结构很容易添加或者删除节点. 比如如果我想新添加个节点D, 我需要从节点 A, B, C中得部分槽到D上. 如果我像移除节点A,需要将A中得槽移到B和C节点上,然后将没有任何槽的A节点从集群中移除即可. 由于从一个节点将哈希槽移动到另一个节点并不会停止服务,所以无论添加删除或者改变某个节点的哈希槽的数量都不会造成集群不可用的状态. 另外一种情况,某一个主节点失效,比如上面的A节点失效,会造成 0 到 5500号槽点不可用, 由于redis支持主从模型的支持,我们在创建A主节点的时候创建a1从节点,即便一个主节点A失效,他的a1也会立马升为新的主节点继续服务,从而使集群可继续服务。 二、集群重新分片 集群的管理中,集群分片管理最为核心,是添加,移除集群的基础,我们优先介绍。 重新分片操作基本上就是将某些节点上的哈希槽移动到另外一些节点上面,

基于Redis的Session共享示例

半腔热情 提交于 2019-11-28 15:52:23
在单机情况下,Session可由部署在服务器上的Web容器来管理 (如Tomcat、JBoss)。 在负载均衡的集群环境下,负载均衡可能将请求分发到不同的服务器上去,在这种情况,需要将有状态的session统一管理起来。 本文将给出一个简单的示例,将session存放到Redis统一管理。因为只是一个示例,所以Nginx只用1台,Tomcat使用2台,Redis一个或者简单的主从。 环境准备 准备Redis 下载redis-3.2.3.tar.gz ( Redis.io下载 ) 解压缩redis tar -zvxf redis-3.2.3.tar.gz 将解压缩后的redis文件名改成好记点的 6379 (可以不重命名)。 然后使用 make && make install 完成安装。 [root@dev18 redis]# mv redis-3.2.3 6379 [root@dev18 redis]# cd 6379 [root@dev18 6379]# make && make install 安装成功之后,出现如下显示: 因为本版本使用的Redis版本是 3.2.3 , 在这个版本中,有 protected mode 的属性(默认是yes),进入6379目录,修改redis.conf配置文件。从而,其它网段的程序可以去访问,否则可能会出现如下的错误。 Exception in

Ambari在离线环境中安装Hadoop集群

一曲冷凌霜 提交于 2019-11-28 12:16:37
(WJW)Ambari在离线环境中安装Hadoop集群 如果手工安装Hadoop集群,在管理和后继部署中,越来越多的问题不断出现,主要如下: 各集群节点的配置同步 新应用的部署:比如为集群添加hbase应用,需要很细心复杂的配置才能完成,而且要是操作错误,还可能导致正常的集群崩溃 新集群节点增加:同上 集群架构调整:比如原来hdfs的namenode和ResourceManager等应用主节点都是放到一台服务器上的,当应用多后,需要调整独立,发现异常复杂 Hadoop集群监控 Apache有个项目Ambari能很好的解决上述所有问题! Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目.目前最新的发布版本是 2.1.2. 就 Ambari 的作用来说,就是创建,管理,监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop. 用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具. 说到这里,大家就应该明白什么人最需要 Ambari 了.那些苦苦花费好几天去安装,调试 Hadoop 的初学者是最能体会到 Ambari

Tomcat服务器集群与负载均衡实现

落爺英雄遲暮 提交于 2019-11-27 20:24:34
一、前言 在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的扩充性还是容错能力,我们都会想在一台以上的服务器计算机上执行WEB应用程序。所以,这时候我们就需要用到集群这一门技术了。 在进入集群系统架构探讨之前,先定义一些专门术语: 1. 集群(Cluster):是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。 2. 负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。 3. 特点:在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。集群系统(Cluster)主要解决下面几个问题: 高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。

HADOOP(3.0.0)在CENTOS7(RED HAT 7)下完全分布式环境搭建

徘徊边缘 提交于 2019-11-27 14:51:06
一、环境简介 本教程服务器主机都是CentOS 7(Red Hat 7 亦可),集群结点分布情况如下表: +---------------+-----------+---------------------------------- |IP |HOSTNAME |备注 +---------------+-----------+---------------------------------- |192.168.6.171 |hdpmmaster |ResourceManager 进程所在机器 +---------------+-----------+---------------------------------- |192.168.6.172 |hdpsmaster |SecondaryNameNode 主机的备机 +---------------+-----------+---------------------------------- |198.168.6.67 |hdpslave67 |datanode +---------------+-----------+---------------------------------- |198.168.6.68 |hdpslave68 |datanode +---------------+-----------+-----