一、HBase与Zookeeper的关系

Client客户端、Master、Region都会通过心跳机制(RPC通信)与zookeeper保持联系。

当在Hbase中插入或读取数据时流程如下:

  1. 在Client中写一个Java类运行,客户端只需要连接zookeeper,客户端会从zookeeper中得到Regionserver的映射信息,之后客户端会直接连接到Region Server。
  2. RegionServer在启动之后会向zookeeper汇报信息(通过心跳RPC):本身有多少Region,有哪些数据,当前机器的运行状况等等。
  3. master 启动后也会向zookeeper汇报信息,并且从zookeeper中得到Region Server的一些信息。例如当一台Region Server当掉之后,zookeeper会得知,之后Master也会通过zookeeper得到该Region Server当掉的信息。
  4. 当客户端Client在做DDL(创建,修改,删除表)时,会通过zookeeper获取到Master的地址,而Master中保存了表的元数据信息,之后Client就可以直接与Master进行通信,进行表的DDL操作。
  5. 当Region中数据不断增大,MAster会向Region Serve发送指令,讲分割出来的Region进行转移。

Zookeeper

  1. 保证任何时候,集群中只有一个活跃的master,因为为保证安全性会启动多个Master。
  2. 存储所有Region的寻址入口。知道那个Region在哪台机器上。
  3. 实时监控Region Server的状态,将Region Server的上下线的信息汇报给HMaster。(因为每间隔一段时间,RegionServer与Master都会zookeeper发送心跳信息),Region Server不直接向Master发送信息的原因是为了减少Master的压力因为只有一个活跃的Master,所有的RegionServer同时向他汇报信息,压力太大。而若有100台RegionServer时,Region Server可以分每10台向一个zookeeper汇报信息,实现zookeeper的负载均衡。
  4. 存储Hbase的元数据(Schema)包括,知道整个Hbase集群中有哪些Table,每个 Table 有哪些column family(列族)。

Client

lient包含了访问Hbase的接口,Client维护这些Cache来加快对Hbase的访问,比如Region的位置信息,zookeeper,zookeeper保证了任何时候群众只有一个Master存储所有的Region中的寻址入口还有实时监控RegionServer上的状态,将RegionServer的上线和下线信息实时通知给Master,存储hbase 的Schema,包括有哪些table,每个Table有哪些Column Family。

Master

  1. 为RegionServer分配Region。
  2. 负责RegionServer的负载均衡。
  3. 发现失效的RegionServer并重新分配其上的Region。
  4. HDFS上的垃圾文件回收。
  5. 处理Schema更新请求。

RegionServer

  1. RegionServer维护Master分配给他的 Region,处理对这些Region的IO请求。
  2. RegionServer负责切分在运行过程中变得过大的Region。

Client访问Hbase上的数据的过程并不需要Master的参与(寻址访问zookeeper和Region Serve,写数据访问Region Server)Master仅仅维护着table和Region的元数据信息。负载很低。

原文链接:

简书(时待吾):zookeeper与hbase

HBase与Zookeeper的关系的更多相关文章

  1. HBase集成Zookeeper集群部署

    大数据集群为了保证故障转移,一般通过zookeeper来整体协调管理,当节点数大于等于6个时推荐使用,接下来描述一下Hbase集群部署在zookeeper上的过程: 安装Hbase之前首先系统应该做通 ...

  2. [转]云计算之hadoop、hive、hue、oozie、sqoop、hbase、zookeeper环境搭建及配置文件

     云计算之hadoop.hive.hue.oozie.sqoop.hbase.zookeeper环境搭建及配置文件已经托管到githubhttps://github.com/sxyx2008/clou ...

  3. Hbase记录-ZooKeeper介绍

    ZooKeeper是一个分布式协调服务来管理大量的主机.协调和管理在分布式环境的一个服务是一个复杂的过程.ZooKeeper 简单解决了其结构和API这个问题.ZooKeeper允许开发人员能够专注于 ...

  4. 【HBase】zookeeper在HBase中的应用

    转自:http://support.huawei.com/ecommunity/bbs/10242721.html Zookeeper在HBase中的应用 HBase部署相对是一个较大的动作,其依赖于 ...

  5. hbase、zookeeper及hadoop部署

    一 机器192.168.0.203 hd203: hadoop namenode & hbase HMaster192.168.0.204 hd204: hadoop datanode &am ...

  6. HBase和ZooKeeper

    HBase和ZooKeeper HBase内置有ZooKeeper,也可以使用外部ZooKeeper. 让HBase使用一个已有的不被HBase托管的Zookeep集群,需要设置 conf/hbase ...

  7. Dubbo简单介绍及其和zookeeper的关系

    何为Dubbo ​ Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维 ...

  8. ubuntu下操作Hadoop、hdfs、hbase、zookeeper时产生的一些问题及解决办法

    2019/05/29 1.在终端输入jps时,没有显示Hdfs的DataNode 在文件夹中分别找到DataNode 和Namenode的version,将Datanode的version改为与nam ...

  9. CentOS系统下Hadoop、Hbase、Zookeeper安装配置

    近期给一个项目搭建linux下的大数据处理环境,系统是CentOS 6.3.主要是配置JDK.安装Tomcat,Hadoop.HBase和Zookeeper软件.博主在Hadoop这方面也是新手.配置 ...

随机推荐

  1. hive集群模式安装

    hadoop3.2.0 完全分布式安装 hive-3.1.1 #解压缩tar -zxvf /usr/local/soft/apache-hive-3.1.1-bin.tar.gz -C /usr/lo ...

  2. node实现文件下载

    1.引入fs const fs = require('fs') const path = reqire('path') 2.方法 const downloadFile = function (dest ...

  3. 文档驱动开发模式在 AIMS 中的应用与实践

    摘要:程序员常会说:我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有一个很老的梗: 我最讨厌别人写的代码没有文档,我也最讨厌自己需要写文档. 有这种想法的程序员应该算是一个老鸟了,对于大多 ...

  4. VMware虚拟机安装黑群晖DSM6.2 (转)

    安装DSM6.2.和安装5.1的过程大致相同,只是在虚拟机的配置时有所不同. 需要用到的工具 Roadkil's Disk Image – 写镜像工具:http://www.roadkil.net/p ...

  5. P3714 [BJOI2017]树的难题 点分治+线段树合并

    题目描述 题目传送门 分析 路径问题考虑点分治 对于一个分治中心,我们可以很容易地得到从它开始的一条路径的价值和长度 问题就是如何将不同的路径合并 很显然,对于同一个子树中的所有路径,它们起始的颜色是 ...

  6. Jmeter(三十五) - 从入门到精通进阶篇 - 关联(详解教程)

    1.简介 上一篇中介绍了如果想要同时发送多条请求,那么怎样才能让每条数据某些请求参数改变呢.这就用到了jMeter参数化.在实际测试场景中,我们往往还有这样的需求,登录后服务器响应的token作为下次 ...

  7. 实现一个简单的 Linux Shell(C++)

    Implement a simple command interpreter in Linux. The interpreter should: support both internal and e ...

  8. ubuntu 上搭建 go的开发环境 vscode

    原文链接: https://astaxie.gitbooks.io/build-web-application-with-golang/zh/01.4.html 原本我是在windows下进行go的环 ...

  9. 【Git】4、创建代码仓库,HTTP、SSH拉取远端代码

    拉取远端代码:使用Git命令下载远程仓库到本地 文章目录 拉取远端代码:使用Git命令下载远程仓库到本地 1.创建远程代码仓库 2.创建仓库 3.进入仓库 4.HTTP(S)获取远程仓库 首次拉取 更 ...

  10. MySQL全面瓦解17:触发器相关

    关于触发器 现实开发中我们经常会遇到这种情况,比如添加.删除和修改信息的时候需要记录日志,我们就要在完成常规的数据库逻辑操作之后再去写入日志表,这样变成了两步操作,更复杂了. 又比如删除一个人员信息的 ...