zoukankan      html  css  js  c++  java
  • Hbase学习笔记

    • Hbase是什么

    HBase是Apache Hadoop中的一个子项目。

    HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

    Hbase依托于Hadoop的HDFS作为最基本存储基础单元,Hbase内部管理的文件全部存储在HDFS中。

    • Hbase中的基本概念

    Table:一个表可以有数十亿行,上百万列,每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列。

    RowKey:行键,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要。

    Column Family:列簇,Table在水平方向有一个或者多个Column Family组成,一个Column Family中可以由任意多个Column组成。

    Column:列,属于某一个Column Family,familyName:columnName,每条记录可动态添加。

    Version Number:类型为Long,默认值是系统时间戳,可由用户自定义。

    Value(Cell):值,所有Value均以二进制格式存储,用户需要自行进行类型转换。

    •  Hbase中数据的存储 

      在HBase中创建的一张表可以分布在多个Hregion,也就说一张表可以被拆分成多块,每一块称我们呼为一个Hregion。每个表开始只有一个Hregion,随着数据增多,Hregion不断增大,当增大到一个阀值的时候,Hregion就会等分会两个新的Hregion,之后会有越来越多的Hregion。每个Hregion会保 存一个表里面某段连续的数据,用户创建的那个大表中的每个Hregion块是由Hregion服务器提供维护,访问Hregion块是要通过 Hregion服务器,而一个Hregion块对应一个Hregion服务器,一张完整的表可以保存在多个Hregion 上。HRegion Server 与Region的对应关系是一对多的关系。每一个HRegion在物理上会被分为三个部分:Hmemcache(缓存)、Hlog(日志)、HStore(持久层)。

    HRegionServer、HRegion、Hmemcache、Hlog、HStore之间的关系,如图所示:

    HBase表中的数据与HRegionServer的分布关系,如图所示:

      HBase读数据:HBase读取数据优先读取HMemcache中的内容,如果未取到再去读取Hstore中的数据,提高数据读取的性能。

      HBase写数据:HBase写入数据会写到HMemcache和Hlog中,HMemcache建立缓存,Hlog同步Hmemcache和Hstore的事务日志,发起Flush Cache时,数据持久化到Hstore中,并清空HMemecache。

    •  Hbase架构及基本组件

    Master

    • 为Region server分配region
    • 负责Region server的负载均衡
    • 发现失效的Region server并重新分配其上的region
    • 管理用户对table的增删改查操作

    HRegionServer

    • HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。
    • HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个Column Family的存储,可以看出每个Column Family其实就是一个集中的存储单元,因此最好将具备共同IO特性的column放在一个Column Family中,这样最高效。

    Zookeeper

    • 通过选举,保证任何时候,集群中只有一个Master,Master与HRegionServer 启动时会向ZooKeeper注册
    • 存贮所有Region的寻址入口
    • 实时监控HRegionServer的上线和下线信息。并实时通知给Master
    • 存储HBase的schema和table元数据
    • 默认情况下,HBase 管理ZooKeeper 实例,比如, 启动或者停止ZooKeeper
    • Zookeeper的引入使得Master不再是单点故障

     

    • Hbase容错性

    Master容错:Zookeeper重新选择一个新的Master。

    HRegionServer容错:定时向Zookeeper汇报心跳,如果一旦时间内未出现心跳,Master将该HRegionServer上的HRegion重新分配到其他HRegionServer上,失效服务器上“预写”日志由主服务器进行分割并派送给新的HRegionServer。

    Zookeeper容错:Zookeeper是一个可靠地服务,一般配置3或5个Zookeeper实例。

    参考:

    http://blog.csdn.net/frankiewang008/article/details/41965543

    http://blog.csdn.net/woshiwanxin102213/article/details/17584043

  • 相关阅读:
    hdu5728 PowMod
    CF1156E Special Segments of Permutation
    CF1182E Product Oriented Recurrence
    CF1082E Increasing Frequency
    CF623B Array GCD
    CF1168B Good Triple
    CF1175E Minimal Segment Cover
    php 正则
    windows 下安装composer
    windows apache "The requested operation has failed" 启动失败
  • 原文地址:https://www.cnblogs.com/Jason-Xiang/p/6203203.html
Copyright © 2011-2022 走看看