zookeeper集群

Zookeeper简介

心不动则不痛 提交于 2019-11-29 05:51:47
Zookeeper简介 产生背景 当今是个分布式、集群、云计算等名词满天飞的时代。造成这种局面的一个重要因素就是,单一机器的处理能力已经不能满足我们的需求,不得不采用由多台机器组成的服务集群。 服务集群对外提供服务的过程中,可以分解处理压力,在一定程度上打破性能瓶颈,并提高服务的可用性(不会因为一台机器宕机而造成服务不可用)。 假设有三台机器,每台机器跑同样的一个应用程序。然后我们将这三台机器通过网络将其连接起来,构成一个系统来为用户提供服务,对用户来说这个系统的架构是透明的,他感觉不到这个系统是一个什么样的架构。那么我们就可以把这种系统称作一个分布式系统。 那么,问题来了: (1)程序的运行往往依赖很多配置文件,比如数据库地址、黑名单控制、服务地址列表等,而且有些配置信息需要频繁地进行动态变更,这时候怎么保证所有机器共享的配置信息保持一致? (2)如果有一台机器挂掉了,其他机器如何感知到这一变化并接管任务?如果用户激增,需要增加机器来缓解压力,如何做到不重启集群而完成机器的添加? (3)用户数量增加或者减少,会出现有的机器资源使用率繁忙,有的却空闲,如何让每台机器感知到其他机器的负载状态从而实现负载均衡? (4)在一台机器上要多个进程或者多个线程操作同一资源比较简单,因为可以有大量的状态信息或者日志信息提供保证,比如两个A和B进程同时写一个文件,加锁就可以实现

Linux配置zookeeper 和zookeeper简单介绍

烂漫一生 提交于 2019-11-29 05:03:26
一、zookeeper介绍? 一、zookeeper 简单介绍? 1.什么是集群? // 很多台服务器保持连接通讯状态,并且所有的服务器做同一件事就称之为集群 2.什么是zookeeper? 注册中心就是zookeeper(eureka,consul)的别名 zookeeper是apache开源基金会下的一个顶级项目 zookeeper是一个致力于开发和维护的开源服务器,作用于项目中的协调和控制功能 场景: 空调坏了,学生就去找班主任说空调坏了,班主任也不会修空调,班主任觉得孟老师会修空调,结果孟老师也不会,孟老师最终给售后打电话,售后假设把空调修好了,最终学生达到了预期效果 学生就是需求者,售后是服务者,孟老师和班主任就是协调者 zookeeper从logo来看是动物园管理员,这个动物园中所有的动物都由zookeeper进行管理,管理了动物的衣食住行,zookeeper在最早的时候只适用于Hadoop的生态圈,在Hadoop的生态圈中所有的框架都是动物,zookeeper对他们进行管理,管理框架的健康(心跳),服务器的调用方和服务器的生产方,也就是说最终服务的客户端不再直接向服务的服务器发送数据,首先客户端先找到zookeeper,根据zookeeper的反馈再找服务器端 hadoop是大象 hbase是鲸鱼 pig是猪 .... 在zookeeper中存放了大量的数据(非常有用

9.hbase相关进程作用

陌路散爱 提交于 2019-11-29 04:43:17
1、协调服务组件Zookeeper Zookeeper的作用如下: 1. 保证任何时候,集群中只有一个HMaster; 2. 存储所有的HRegion的寻址入口; 3. 实时监控HRegionServer的上线和下线信息,并实时通知给HMaster; 4. 存储HBase的schema和table元数据; 5. Zookeeper Quorum存储-ROOT-表地址、HMaster地址。 2、主节点HMaster HMaster的主要功能如下: 1. HMaster没有单节点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master在运行,主要负责Table和Region的管理工作。 2. 管理用户对表的增删改查操作;DML 3. 管理HRegionServer的负载均衡,调整Region分布(在命令行里面有一个tools,tools这个分组命令其实全部都是Master做的事情); 4. Region Split后,负责新Region的分布; 5. 在HRegionServer停机后, 负责失效HRegionServer上Region迁移工作。 3、Region节点HRegionServer HRegionServer的功能如下: 1. 维护HRegion,处理HRegion的IO请求

zookeeper介绍

孤街浪徒 提交于 2019-11-29 04:11:39
1、什么是zookeeper   ZooKeeper是一个分布式的,开放源码的分布式应用程序 协调服务 ,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 参照博客: https://www.cnblogs.com/felixzh/p/5869212.html 2、zookeeper能做什么 命名服务 配置管理 集群管理 分布式锁 队列管理 3、命名服务   在zookeeper的文件系统里创建一个目录,即有唯一的path。在我们使用tborg无法确定上游程序的部署机器时即可与下游程序约定好path,通过path即能互相探索发现。 4、配置管理   程序总是需要配置的,如果程序分散部署在多台机器上,要逐个改变配置就变得困难。现在把这些配置全部放到zookeeper上去,保存在 Zookeeper 的某个目录节点中,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 Zookeeper 的通知,然后从 Zookeeper 获取新的配置信息应用到系统中就好。    5、集群管理   所谓集群管理无在乎两点:是否有机器退出和加入、选举master。   对于第一点

Zookeep 分布式锁

邮差的信 提交于 2019-11-29 03:19:57
什么是分布式锁 概述 为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个 分布式锁 。 分布式锁应具备的条件 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行 高可用的获取锁与释放锁 高性能的获取锁与释放锁 具备可重入特性 具备锁失效机制 具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败 分布式锁有哪些实现 Memcached:利用 Memcached 的 add 命令。此命令是原子性操作,只有在 key 不存在的情况下,才能 add 成功,也就意味着线程得到了锁。 Redis:利用 setnx 命令。此命令同样是原子性操作,只有在 key 不存在的情况下,才能 set 成功。 Zookeeper:利用 Zookeeper 的顺序临时节点,来实现分布式锁和等待队列。Zookeeper 设计的初衷,就是为了实现分布式锁服务的。 Chubby:Google 公司实现的粗粒度分布式锁服务,底层利用了 Paxos 一致性算法。 Redis分布式锁的实现 加锁 setnx(lock_sale_商品ID, 1) 当一个线程实行 setnx 返回 1 ,说明 key 原本不存在,该线程成功的到了锁;当一个线程执行 setnx 返回 0 ,说明 key 已经存在,该线程抢锁失败。 解锁

zookeeper学习之原理

时间秒杀一切 提交于 2019-11-29 02:43:24
一、zookeeper 是什么 Zookeeper是一个分布式协调服务,可用于服务发现,分布式锁,分布式领导选举,配置管理等。这一切的基础,都是Zookeeper提供了一个类似于Linux文件系统的树形结构(可认为是轻量级的内存文件系统,但只适合存少量信息,完全不适合存储大量文件或者大文件),同时提供了对于每个节点的监控与通知机制。既然是一个文件系统,就不得不提Zookeeper是如何保证数据的一致性的。 二、zookeeper 集群架构 Zookeeper集群是一个基于主从复制的高可用集群,通常 Master服务器作为主服务器提供写服务,其他的 Slave 服务器通过异步复制的方式获取 Master 服务器最新的数据,并提供读服务,在 ZooKeeper 中没有选择传统的 Master/Slave 概念,而是引入了Leader、Follower 和 Observer 三种角色,每个角色承担如下: Leader 一个Zookeeper集群同一时间只会有一个实际工作的Leader,它会发起并维护与各Follwer及Observer间的心跳。所有的写操作必须要通过Leader完成再由Leader将写操作广播给其它服务器。 Follower 一个Zookeeper集群可能同时存在多个Follower,它会响应Leader的心跳。Follower可直接处理并返回客户端的读请求

Zookeeper到底是什么

一世执手 提交于 2019-11-29 02:42:55
在Zookeeper的官网上有这么一句话:ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. 这大概描述了 Zookeeper主要可以干哪些事情:配置管理,名字服务,提供分布式同步以及集群管理 。那这些服务又到底是什么呢?我们为什么需要这样的服务?我们又为什么要使用Zookeeper来实现呢,使用Zookeeper有什么优势?接下来我会挨个介绍这些到底是什么,以及有哪些开源系统中使用了。 配置管理 在我们的应用中除了代码外,还有一些就是 各种配置。比如数据库连接等。一般我们都是使用配置文件的方式 ,在代码中引入这些配置文件。但是当我们只有一种配置,只有一台服务器,并且不经常修改的时候,使用配置文件是一个很好的做法,但是如果我们配置非常多,有很多服务器都需要这个配置,而且还可能是动态的话使用配置文件就不是个好主意了。这个时候往往 需要一种集中管理配置的方法,我们在这个集中的地方修改了配置,所有对这个配置感兴趣的都可以获得变更 。比如我们可以把配置放在数据库里,然后所有需要配置的服务都去这个数据库读取配置。但是

Hbase的配置和分布式部署

拜拜、爱过 提交于 2019-11-29 02:30:43
目录 一、下载和配置 1. 下载 2. 配置 二、hbase命令行基本操作 HBase是建立在Hadoop文件系统之上的分布式面向列的数据库。它是一个开源项目,是横向扩展的。该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式的文件系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。 说明:三台机器的主机名分别为:bigdata.centos01、bigdata.centos02、bigdata.centos03,其中centos01上面部署活动的master和regionserver,centos02上面部署后备的master以及regionserver,centos03上部署regionserver。Hbase安装配置是基于单namenode节点服务配置。 Hbase需要依赖HDFS已经zookeeper,在安装前要确保Hadoop和zookeeper已经安装。如果没有安装Hadoop和zookeeper,请参阅: Hadoop集群搭建 和 zookeeper的配置和分布式部署 。 一、下载和配置 1. 下载 # 由于下载的Hadoop是cdh5.3.9,故而hbase也下载的是cdh5.3.9 wget

kafka命令总结

我怕爱的太早我们不能终老 提交于 2019-11-29 02:15:31
kafka知识总结 //切换到安装路径命令 cd /home/kafka/kafka_2.11-0.10.2.1/bin //启动kafka服务,三台主机分别输入此指令: ./kafka-server-start.sh $KAFKA_HOME/config/server.properties & //以后台的方式启动 nohup ./kafka-server-start.sh $KAFKA_HOME/config/server.properties & //查看topic名 ./kafka-topics.sh --list --zookeeper 10.101.22.41:2181 ./kafka-topics.sh --list --zookeeper 10.101.22.41:2181,10.101.22.42:2181,10.101.22.43:2181 //查询topic内容 ./kafka-console-consumer.sh --bootstrap-server 10.101.22.41:9092,10.101.22.42:9093,10.101.22.43:9094 --topic oth_cpd_active_realtime_data --from-beginning //查看某个Topic的详情 ./kafka-topics.sh --topic oth

docker 搭建zookeeper集群和kafka集群

守給你的承諾、 提交于 2019-11-29 01:56:02
docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用。 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multicontainer Docker applications)」,其前身是开源项目 Fig。 使用一个 Dockerfile 模板文件,可以让用户很方便的定义一个单独的应用容器。然而,在日常工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。 Compose 恰好满足了这样的需求。它允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 Compose 中有两个重要的概念: 服务 ( service ):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例 项目 ( project )