1.HBase(NoSQL:不是关系型数据库)的逻辑数据模型

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。

1.1 表(table),是存储管理数据的。
1.2 行键(row key),类似于MySQL中的主键。
  行键是HBase表天然自带的。
1.3 列族(column family),列的集合。
  HBase中列族是需要在定义表时指定的,列是在插入记录时动态增加的。
  HBase表中的数据,每个列族单独一个文件。
1.4 时间戳(timestamp),列(也称作标签、修饰符)的一个属性。
  行键和列确定的单元格,可以存储多个数据,每个数据含有时间戳属性,数据具有版本特性。
  如果不指定时间戳或者版本,默认取最新的数据。
1.5 存储的数据都是字节数组。
1.6 表中的数据是按照行键的顺序物理存储的。

2.HBase的物理数据模型

2.1 HBase是适合海量数据(如20PB,1024T=1P)的秒级简单查询的数据库。
2.2 HBase表中的记录,按照行键进行拆分, 拆分成一个个的region。
  许多个region存储在region server(单独的物理机器)中的。
  这样,对表的操作转化为对多台region server的并行查询。

3.HBase的体系结构


3.1 HBase是主从式结构,HMaster、HRegionServer

Client 包含访问hbase 的接口,client 维护着一些cache 来加快对hbase 的访问,比如regione 的位置信息

Zookeeper 保证任何时候,集群中只有一个running master

       存贮所有Region 的寻址入口

       实时监控Region Server 的状态,将Region server 的上线和下线信息,实时通知给Master

         存储Hbase 的schema,包括有哪些table,每个table 有哪些column family

Master 可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行

       为Region server 分配region

       负责region server 的负载均衡

发现失效的region server 并重新分配其上的region

Region Server 维护Master 分配给它的region,处理对这些region 的IO请求

        负责切分在运行过程中变得过大的region

HBase中有两张特殊的Table,-ROOT-和.META.

1、.META.:记录了用户表的Region信息,.META.可以有多个regoin

2、-ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region Zookeeper中记录了-ROOT-表的location

Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问

HBase的基础知识的更多相关文章

  1. Hbase(一)基础知识

    一.Hbase数据库介绍 1.简介 HBase 是 BigTable 的开源 java 版本.是建立在 HDFS 之上,提供高可靠性.高性能.列存储. 可伸缩.实时读写 NoSQL 的数据库系统. N ...

  2. HBASE基础知识总结

    HBASE基础知识总结 一,概要说明 文章首先回顾HBase 的数据模型和数据层级结构,对数据的每个层级的作用和架构进行了详细阐述:随后介绍了数据写入和读取的详细流程.先把架构图和流程图来坐镇. 架构 ...

  3. 大数据基础知识问答----spark篇,大数据生态圈

    Spark相关知识点 1.Spark基础知识 1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduce的通用的并行计算框架 dfsSpark基于mapredu ...

  4. 最全的spark基础知识解答

    原文:http://www.36dsj.com/archives/61155 一. Spark基础知识 1.Spark是什么? UCBerkeley AMPlab所开源的类HadoopMapReduc ...

  5. ZooKeeper_基础知识学习

    ZooKeeper是Hadoop的开源子项目(Google Chubby的开源实现),它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.命名服务.分布式同步.组服务等. Zookee ...

  6. HBase框架基础(五)

    * HBase框架基础(五) 本节主要介绍HBase中关于分区的一些知识. * HBase的RowKey设计 我们为什么要讨论rowKey的设计?或者说为什么很多工作岗位要求有rowKey的优化设计经 ...

  7. HBase框架基础(四)

    * HBase框架基础(四) 上一节我们介绍了如何使用HBase搞一些MapReduce小程序,其主要作用呢是可以做一些数据清洗和分析或者导入数据的工作,这一节我们来介绍如何使用HBase与其他框架进 ...

  8. HBase框架基础(二)

    * HBase框架基础(二) 上一节我们了解了HBase的架构原理和模块组成,这一节我们先来聊一聊HBase的读写数据的过程. * HBase的读写流程及3个机制 HBase的读数据流程: 1.HRe ...

  9. Elasticsearch基础知识学习

    概要 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Ap ...

随机推荐

  1. alertdialog 设置最大高度

    设置最大高度,有很多方法,我个人比较喜欢的是下面这种方式 ,这里的view即添加到 view.addOnLayoutChangeListener(new View.OnLayoutChangeList ...

  2. Java并发编程原理与实战三十五:并发容器ConcurrentLinkedQueue原理与使用

    一.简介 一个基于链接节点的无界线程安全队列.此队列按照 FIFO(先进先出)原则对元素进行排序.队列的头部 是队列中时间最长的元素.队列的尾部 是队列中时间最短的元素.新的元素插入到队列的尾部,队列 ...

  3. spring boot(三):spring data jpa的使用

    @RequestMapping("/queryUserListByPageNativeQuery") public String queryUserListByPageNative ...

  4. 同一个IIS绑定多个Htts 站点问题

    默认情况一个服务器的IIS只能绑定一个HTTPS也就是443端口 要实现多个站点对应HTTPS只能更改IIS配置 地址:C:Windowssystem32inetsrvconfigapplicatio ...

  5. 奇葩字符 "a๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎" 的简单分析

    这个其实之前火过一阵子,当时也没怎么注意,今天看到空间里又有人在刷这个字符了,所以决定分析下他是什么东西.复制这个字符在控制台查看 "a๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎".l ...

  6. ArcGis10.1 Feature Class Properties无法编辑

    被这个问题困扰了很久,最后从官网帮助中查询到资料解决了 先看一下截图: 这种问题一般是FratureClass被锁,被mxd引用,并且发布服务有实例在运行,但我新创建一个FeatureClass也无法 ...

  7. # 20155209 2016-2017-2 《Java程序设计》第六周学习总结

    20155209 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基 ...

  8. HDU 1561 The more, The Better (有依赖背包 || 树形DP)

    题目链接 Problem Description ACboy很喜欢玩一种战略游戏,在一个地图上,有N座城堡,每座城堡都有一定的宝物,在每次游戏中ACboy允许攻克M个城堡并获得里面的宝物.但由于地理位 ...

  9. 字符加密 cipher

    评测传送门 Description: Valentino 函数的定义: 对于一个由数字和小写字母组成的字符串 S,两个整数 K,M,将 S 视为一个 P 进制数,定义: Valentino(S, K, ...

  10. Ajax异步请求struts的JSON机制(省市区三级联动)

    1.struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts P ...