1. hbase是什么

漫画学习hbase----最易懂的Hbase架构原理解析
http://developer.51cto.com/art/201904/595698.htm

1.1 hbase的概念

  • hbase基于Google的BigTable论文,是建立的hdfs之上,提供高可靠性高性能列存储可伸缩实时读写的分布式数据库系统。在需要实时读写随机访问超大规模数据集时,可以使用hbase。

1.2 hbase的特点

  • 海量存储

    • 可以存储大批量的数据

  • 列式存储

    • hbase表的数据是基于列族进行存储的,列族是在列的方向上的划分。

  • 极易扩展

    • 底层依赖HDFS,当磁盘空间不足的时候,只需要动态增加datanode节点服务(机器)就可以了

    • 可以通过增加服务器来提高集群的存储能力

  • 高并发

    • 支持高并发的读写请求

  • 稀疏

    • 稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。

  • 数据的多版本

    • hbase表中的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就是插入数据的时间戳

  • 数据类型单一

    • 所有的数据在hbase中是以字节数组进行存储

2、hbase整体架构

  • 1、Client

    • 客户端

      • Client包含了访问Hbase的接口

      • 另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息

  • 2、Zookeeper

    • zookeeper集群

      • 作用

        • 实现了HMaster的高可用

        • 保存了hbase的元数据信息,是所有hbase表的寻址入口

        • 对HMaster和HRegionServer实现了监控

  • 3、HMaster

    • hbase集群的老大

      • 作用

        • 为HRegionServer分配Region

        • 维护整个集群的负载均衡

        • 维护集群的元数据信息

        • 发现失效的Region,并将失效的Region分配到正常的HRegionServer上

  • 4、HRegionServer

    • hbase集群中的小弟

      • 负责管理Region

      • 接受客户端的读写数据请求

      • 切分在运行过程中变大的region

  • 5、Region

  • hbase集群中分布式存储的最小单元

3、hbase表的数据模型

  • rowkey

    • 行键

      • table的主键,table中的记录按照rowkey 的字典序进行排序

  • Column Family

    • 列族

      • hbase表中的每个列,都归属与某个列族。列族是表的schema的一部分(而列不是),必须在使用表之前定义。

  • Timestamp

    • 时间戳

      • 每次数据操作对应的时间戳,可以看作是数据的version number版本号

  • Column

      • 列族下面的具体列

      • 属于某一个ColumnFamily,类似于我们mysql当中创建的具体的列

  • cell

    • 单元格

      • 由{row key, column( =<family> + <label>), version} 唯一确定的单元

      • cell中的数据是没有类型的,全部是以字节数组进行存储

hbase基础知识一的更多相关文章

  1. HBASE基础知识总结

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

  2. HBASE基础知识

    HBASE的集群的搭建HBASE的表设计HBASE的底层存储模型 HBase 是一个高可靠.高性能.面向列.可伸缩的分布式缓存系统.利用HBase 技术可在廉价PC Server上搭建起大规模结构化存 ...

  3. Hadoop第11周练习—HBase基础知识

    1 :数据即日志 内容 2 :HBase合并过程 内容 3 :HBase一致性 内容 书面作业1:数据即日志 内容 我们常说HBase是“数据即日志”的数据库,它是怎样修改和删除数据的?和Oracle ...

  4. HBase基础知识摘要

    HBASE 列式存储,设计思想参考BigTable 文档:http://hbase.apache.org/book.html hive适合数据分析,离线任务 hbase大数据实时查询 避免显式锁,提供 ...

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

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

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

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

  7. ZooKeeper_基础知识学习

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

  8. 大数据存储利器 - Hbase 基础图解

    由于疫情原因在家办公,导致很长一段时间没有更新内容,这次终于带来一篇干货,是一篇关于 Hbase架构原理 的分享. Hbase 作为实时存储框架在大数据业务下承担着举足轻重的地位,可以说目前绝大多数大 ...

  9. Elasticsearch基础知识学习

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

随机推荐

  1. 基准测试工具:Wrk初识

    最近和同事聊起常用的一些压测工具,谈到了Apache ab.阿里云的PTS.Jmeter.Locust以及wrk各自的一些优缺点和适用的场景类型. 这篇博客,简单介绍下HTTP基准测试工具wrk的基本 ...

  2. C# 练习题 利用条件运算符的嵌套来完成分数等级划分

    题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示.1.程序分析:(a>b)?a:b这是条件运算符的基本例子. cla ...

  3. Java静态变量初始化的坑

    class SingleTon { private static SingleTon singleTon = new SingleTon(); public static int count1; pu ...

  4. Mybatis事物浅谈

    本篇文章主要对Mybatis事物进行基础的介绍.先回顾JDBC事物,再了解Mybatis里面的事物应用. 1.JDBC的事务管理回顾 JDBC的事务管理是基于Connection对象实现的: 开启事务 ...

  5. java开发中,一些小的JS应用

    js中打开一个新窗口的方法: 1.window.location.href=“url” 2.jbox.win(); 3.window.open(); js无任何提示的关闭弹出的页面: window.o ...

  6. vue项目的各个文件作用

    vue项目的各个文件作用: build:放置的是webpack配置文件,一般不动,修改了必须重启服务器才能生效 config:放置针对开发环境和线上环境的配置文件,一般不动 修改后需重启 node_m ...

  7. python基础-os模块

    os 模块 功能:与操作系统交互的模块 使用方式:import os 常用的几种功能 os.path.dirname(文件名) 用于获取当前文件的所在目录 import os # 获取当前文件的所在目 ...

  8. mysql 使用 MD5函数 校验账号密码

    项目中账号密码需要加密操作,数据库用户表账号是明文,密码是密文,但是前端传递过来的都是密文,所以需要到数据库中加密账号和前端传递过来的密文做校验. 这时候就可以使用md5函数. 使用案例: SELEC ...

  9. Sql 语句中 IN 和 EXISTS 的区别

    IN 语句:只执行一次 确定给定的值是否与子查询或列表中的值相匹配.in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选.所以相对内表比较小的时候,in的速度较快 ...

  10. 【解决】修改 docker 容器时间与宿主机不同

    修改 docker 容器时间 需求: 这几天,开发提了个需求 "测试需要模拟未来某天的业务,发现容器里面没有修改时间的权限",想在我们 k8s 集群上,调整容器时间 解决方案: 使 ...