zookeeper集群

zookeeper 分布式锁

99封情书 提交于 2020-03-18 14:56:00
zookeeper 分布式锁 分布式锁的概念,大家应该都已经理解,在此不会细讲。 分布式锁简单来说就是服务器集群环境下出现用户高并发访问同一个资源时,对该资源访问进行加锁等待,以保证资源的准确性。 zookeeper的分布式锁是并发的多线程通过循环的请求创建zk节点来竞争锁的占有权,待取得占有权后,其他线程进入等待。待释放占有权后,其他线程再进行循环竞争。 本编文章,主要讲解zk分布式锁,如何使用,具体逻辑还需根据实际场景进行调整。 代码是在本地建设,为了方便测试,所以里面都是静态方法。真正的开发环境都是基于webservlet或微服务工程,使用bean的方式进行类对象或者方法的调用。大家可以根据自己的工程业务做zk分布式锁的封装。 重点提醒下: 如果使用zk的watcher监听通知,节点创建后并瞬间删除,zkServer将会监听失败。因为zkServer的监听有延迟,当执行监听的时候,他发现并无该节点的stat信息,故不执行监听。 1.客户端创建    zk是支持集群的,所以这里两种客户端形式,代码操作是一样的,唯有连接地址略有差异。 package com.qy.zk.lock; import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import

Codis集群的搭建与使用

最后都变了- 提交于 2020-03-18 01:59:57
Codis集群的搭建与使用 一、简介 Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面客户端来说是透明的,可以简单的认为后边连接是一个内存无限大的Redis服务。 Codis架构图: 以上我们可以看到codis-proxy是单个节点的,因为我们可以通过结合keepalived来实现高可用: codis-proxy 提供连接集群redis服务的入口 codis-redis-group 实现redis读写的水平扩展,高性能 codis-redis 实现redis实例服务,通过codis-ha实现服务的高可用 二、组件说明 codis-proxy : 是客户端连接的Redis代理服务,codis-proxy 本身实现了Redis协议,表现得和一个原生的Redis没什么区别(就像Twemproxy),对于一个业务来说,可以部署多个codis-proxy,codis-proxy本身是没状态的。 codis-config :是Codis的管理工具,支持包括,添加/删除Redis节点,添加/删除Proxy节点,发起数据迁移等操作,codis

codis原理及部署_01

时间秒杀一切 提交于 2020-03-18 01:56:57
一.codis介绍 Codis是一个分布式Redis解决方案,对于上层的应用来说,连接到Codis Proxy和连接原生的RedisServer没有明显的区别,有部分命令不支持 Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面的客户端来说是透明的,可以简单的认为后边连接的是一个内存无限大的Redis服务. Codis由四部分组成 Codis-proxy:实现redis协议,由于本身是无状态的,因此可以部署很多个节点 Codis-config :是codis的管理工具,包括添加/删除redis节点添加删除proxy节点,发起数据迁移等操作,自带httpserver,支持管理后台方式管理配置 Codis-server :是codis维护的redis分支,基于2.8.21分支,加入了slot的支持和原子的数据迁移指令; codis-proxy和codis-config只能和这个版本的redis交互才能正常运行 Zookeeper,用于codis集群元数据的存储,维护codis集群节点 二.Codis优缺点 优点 对客户端透明,与codis交互方式和redis本身交互一样 支持在线数据迁移,迁移过程对客户端透明有简单的管理和监控界面 支持高可用,无论是redis数据存储还是代理节点 自动进行数据的均衡分配 最大支持1024个redis实例,存储容量海量

hadoop集群启动

杀马特。学长 韩版系。学妹 提交于 2020-03-17 10:41:19
1. 启动zk 第一台# `` ` [ hadoop@iZm5egvghvhhyj2r5iixetZ zookeeper - 3.4 .6 ] $ bin / zkServer . sh status JMX enabled by default Using config : / home / hadoop / app / zookeeper - 3.4 .6 / bin / . . / conf / zoo . cfg Error contacting service . It is probably not running . [ hadoop@iZm5egvghvhhyj2r5iixetZ zookeeper - 3.4 .6 ] $ bin / zkServer . sh start JMX enabled by default Using config : / home / hadoop / app / zookeeper - 3.4 .6 / bin / . . / conf / zoo . cfg Starting zookeeper ... STARTED [ hadoop@iZm5egvghvhhyj2r5iixetZ zookeeper - 3.4 .6 ] $ jps 2720 Jps 2695 QuorumPeerMain [ hadoop

Zookeeper入门及单机及集群环境搭建

♀尐吖头ヾ 提交于 2020-03-17 07:28:27
1.Zookeeper简介 Zookeeper是一个分布式服务框架,以前是Apache Hadoop 的一个子项目,现在是Apache的一个独立顶级项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。有关分布式的相关问题请查阅上篇博客: 分布式系统问题及解决方案 2.设计目标 ZooKeeper简单。ZooKeeper允许分布式进程通过共享的分层名称空间相互协调,该命名空间的组织方式类似于标准文件系统。名称空间由数据寄存器(在ZooKeeper看来,称为znode)组成,它们类似于文件和目录。与设计用于存储的典型文件系统不同,ZooKeeper数据保留在内存中,这意味着ZooKeeper可以实现高吞吐量和低延迟数。 ZooKeeper特性还包括高性能、高可用性、严格有序。ZooKeeper的性能方面意味着它可以在大型的分布式系统中使用。可靠性方面使它不会成为单点故障。严格有序意味着可以在客户端上实现复杂的同步原语。 ZooKeeper可复制。像它协调的分布式进程一样,ZooKeeper本身也可以在称为集合的一组主机上进行复制。组成ZooKeeper服务的服务器都必须彼此了解。它们维护内存中的状态图像,以及持久存储中的事务日志和快照。只要大多数服务器可用,ZooKeeper服务将可用

部署clickhouse cluster(基于docker+zookeeper)

你离开我真会死。 提交于 2020-03-17 01:04:44
#安装zookeeper 虽然不是必要的,但clickhouse官方建议使用zookeeper部署集群,原因是ck的复制是用zk实现的: ZooKeeper is not a strict requirement: in some simple cases you can duplicate the data by writing it into all the replicas from your application code. This approach is not recommended, in this case ClickHouse won’t be able to guarantee data consistency on all replicas. This remains the responsibility of your application. 而且很重要的是,如果不安装zookeeper,那么副本表是无法实现的 1.准备三台机器(/etc/hosts): 192.168.11.100 ch100 192.168.11.101 ch101 192.168.11.102 ch102 2. 下载zookeeper3.5.6 注意一定要下载带有bin的版本,否则会 【报错】 Starting Zookeeper Cluster. Error: Could

hbase 安装(集群模式)

China☆狼群 提交于 2020-03-16 17:11:48
环境:jdk 1.8 + hadoop2.7.6+zookeeper3.4.9+centos7 一.安装zookeeper(集群模式) 0.安装机器 ip hostname 192.168.100.9 ns1 192.168.100.10 dn1 1. 下载zookeeper 2.zookeeper tar包一栋至 ns1的 /usr/local,解压 tar -zxvf zookeeper-3.4.9.tar.gz 3.修改zk配置文件 cd /usr/local/zookeeper-3.4.9/conf cp zoo_sample.cfg zoo.cfg 修改配置文件zoo.cfg(所有节点的配置文件相同) #tickTime这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime时间就会发送一个心跳 tickTime=2000 #initLimit这个配置项是用来配置zookeeper接受客户端(这里所说的客户端不是用户连接zookeeper服务器的客户端,而是zookeeper服务器集群中连接到leader的follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数 initLimit=10 #syncLimit这个配置项标识leader与follower之间发送消息,请求和应答时间长度

kafka单机多节点部署

纵然是瞬间 提交于 2020-03-12 17:22:17
zookeeper版本:apache-zookeeper-3.5.5-bin.tar.gz kafka版本:kafka_2.12-2.2.1.tgz 一、zookeeper部署 1)解压 tar -zxf apache-zookeeper-3.5.5-bin.tar.gz 2)创建路径 mkdir zookeeper_cluster mkdir zookeeper-1 mkdir zookeeper-2 mkdir zookeeper-3 3)复制解压后的zookeeper至对应的路径 cp -r apache-zookeeper-3.5.5/* zookeeper-1 cp -r apache-zookeeper-3.5.5/* zookeeper-2 cp -r apache-zookeeper-3.5.5/* zookeeper-3 4)创建数据文件存放路径及日志路径 mkdir zookeeper-1/data mkdir zookeeper-2/data mkdir zookeeper-3/data mkdir zookeeper-1/logs mkdir zookeeper-2/logs mkdir zookeeper-3/logs 5)创建myid文件 echo ‘1’ > zookeeper-1/data/myid echo ‘2’ > zookeeper-2

搭建zookeeper和Kafka集群

一世执手 提交于 2020-03-12 16:40:55
搭建zookeeper和Kafka集群: 本实验拥有3个节点,均为CentOS 7系统,分别对应IP为10.211.55.11、10.211.55.13、10.211.55.14,且均有相同用户名 (本实验为 jiecxy) 为了方便,先在三台节点上 /etc/hosts 文件内容均添加: 10.211.55.11 master 10.211.55.13 worker1 10.211.55.14 worker2123 一、 安装zookeeper 1. 下载 zookeeper-3.4.8.tar.gz 2. 在 master 节点上安装 zookeeper 解压安装包,并复制配置文件 # 在master节点上 [jiecxy@master ~]$ tar -xzvf zookeeper-3.4.8.tar.gz [jiecxy@master ~]$ cd zookeeper-3.4.8/conf/ [jiecxy@master conf]$ cp zoo_sample.cfg zoo.cfg1234 3. 修改 zoo.cfg [jiecxy@master conf]$ vi zoo.cfg1 修改内容如下: ... # dataDir 最好不要在 /tmp 下 dataDir=/tmp/zookeeper ... # the port at which the clients

kafka的搭建与使用

天涯浪子 提交于 2020-03-12 05:34:25
安装 一、安装jdk 创建java安装目录 [ root@This-Address-Is-Forged-64 opt ] # mkdir /opt/java [ root@This-Address-Is-Forged-64 opt ] # ll total 0 drwxr-xr-x. 3 root root 60 Feb 26 20:18 java 并将下载的jdk-8u181-linux-x64.tar.gz放到/opt/java下面,并解压。 [ root@This-Address-Is-Forged-64 java ] # tar -zxvf jdk-8u181-linux-x64.tar.gz [ root@This-Address-Is-Forged-64 java ] # ll total 181296 drwxr-xr-x. 7 10 143 245 Jul 7 2018 jdk1.8.0_181 -rw-r--r--. 1 root root 185646832 Feb 26 19:53 jdk-8u181-linux-x64.tar.gz 编辑环境变量 [ root@This-Address-Is-Forged-64 java ] # vi /etc/profile export JAVA_HOME = /opt/java/jdk1.8.0_181 export