HBASE
1 简介
1.1 官网
1.1.1 http://hbase.apache.org/
1.1.2 Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. Use Apache HBase™ when you need random, realtime read/write access to your Big Data
1.2 应用场景
1.2.1 https://www.zhihu.com/question/21677041
1.2.2 http://www.cnblogs.com/ggjucheng/p/3379459.html
1.2.3 http://blog.csdn.net/lifuxiangcaohui/article/details/39894265
1.2.4 http://www.aboutyun.com/thread-8701-1-1.html
1.2.5 http://blog.csdn.net/defonds/article/details/48471087
1.3 基于HDFS的分布式数据库,提供对大数据实时、随机、读写操作
1.3.1 MySQL关系型、偏事务
1.3.2 HBASE没有关联的操作,适合简单的处理
1.4 特点
1.4.1 传统SQL数据库字段添加比较麻烦,表设计比较固定死板
1.4.2 HBASE字段可以随意扩充
1.4.2.1 建表不需要指定特定字段,只需要指定列族CF
1.4.2.2 插入数据时,列族中可以存储任意多个列CK
1.4.3 不需要SQL数据库范式,不需要拆表,全部放在一张大表中,当然也就不需要JOIN了
1.4.4 HBASE数据更新保留原始数据,历史版本一直存在,KV中的Value带有版本号,通常是时间戳
1.4.5 通过表名--行健--列族--列名--版本 定位一个字段
1.5 存储
1.5.1 分布式存储,需要把大表切开存储,HBASE是按照region切分存储管理的
1.5.2 按照列族进行切分,某一列组的若干行切分为一个region,数据量达到一定大小就切分
1.5.3 region的基本信息存储在regionServer上面存储,regionServer的数据存放在HDFS上面,叫HFile
1.5.4 HFile肯定不是纯文本的格式,纯文本检索可能会比较慢,HFile按照HBase自定义的格式存储
1.5.5 所以regionServe最好也和DataNode、NodeManager一样在物理上面部署在一起,直接访问本地数据,加快HBase速度
1.5.6 HMaster不存储具体的Region数据,Hamster负责管理RegionServer的状态,负责RegionServer的负载均衡,可以理解为相当于HBase定制的一个NameServer
1.5.7 HMaster可以通过ZK实现HA
1.6 查询机制
1.6.1 HBase的Meta表存储了TBLName_RKStart_RKEnd;HostNameList
1.6.2 该表为Habse的系统表,由Hbase自己维护
1.6.3 每个region都在Meta表有一条记录
1.6.4 Meta表也可能是一个大表,所以Meta也和Region的信息一样存储在HDFS上面
1.6.5 同理,上面的信息可能也很大,也会产生同样的问题,Meta的Meta的数据仍然需要分布式存储,所以HBase建立了二级索引,有两个Meta的索引表
1.6.6 理论上二级Meta索引已经可以容纳十亿级别的数据量了
1.6.7 二级索引的表存储在一台机器即可,这个表叫ROOT表,root表的节点信息存储在zookeeper上面
1.6.8 寻址过程:ZK中获取ROOT节点--ROOT节点获取Meta信息表的region对应的节点--Meta表中获取数据具体存储在哪个节点上面--再去获取数据
1.6.9 regionServer的内存缓存着最近查询的热数据,所以regionServer最好内存稍微大一点
2 HBase Shell
2.1 略,参考笔记
3 HBase API
3.1 略,参考笔记
4 最佳实践
4.1 HBASE可以与ES结合起来,将需要查询的字段存到ES中,ES搜索得到相关的RowKey之后再从HBase中快速查询出来, 即将计算放到ES中进行,这是一个比较好的思路
4.2 行健的设计可以帮助更好的使用HBase,更快更方便的进行过滤查询,比如时序数据库的设计就是这个思路
 
 
 
 

【HBase】学习笔记的更多相关文章

  1. HBase学习笔记之HBase的安装和配置

    HBase学习笔记之HBase的安装和配置 我是为了调研和验证hbase的bulkload功能,才安装hbase,学习hbase的.为了快速的验证bulkload功能,我安装了一个节点的hadoop集 ...

  2. HBASE学习笔记(四)

    这两天把要前几天的知识点回顾一下,接下来我会用自己对知识点的理解来写一些东西 一.知识点回顾 1.hbase集群启动:$>start-hbase.sh ===>hbase-daemon.s ...

  3. HBase学习笔记之BulkLoad

    HBase学习之BulkLoad bulkload的学习以后再写文章. 参考资料: 1.https://blog.csdn.net/shixiaoguo90/article/details/78038 ...

  4. HBase学习笔记之HBase原理和Shell使用

    HBase学习指南之HBase原理和Shell使用 参考资料: 1.https://www.cnblogs.com/nexiyi/p/hbase_shell.html,hbase shell

  5. HBase学习笔记(四)—— 架构模型

    在逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列. 但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional m ...

  6. Hbase学习笔记01

    最近做项目接触到了HDFS.mapreduce以及Hbase,有了实战机会,今天打算将这些知识好好总结下,以备不时之需.首先从Hbase开始吧. Hbase是建立在HDFS上的分布式数据库,下图是Hb ...

  7. HBase学习笔记-高级(一)

    HBase1. hbase.id记录了集群的唯一标识:hbase.version记录了文件格式的版本号2. split和.corrupt目录在日志分裂过程中使用,以便保存一些中间结果和损坏的日志在表目 ...

  8. HBASE学习笔记--API

    HBaseConfiguration HBaseConfiguration是每一个hbase client都会使用到的对象,它代表的是HBase配置信息.它有两种构造方式: public HBaseC ...

  9. Hbase—学习笔记(一)

    此文的目的: 1.重点理解Hbase的整体工作机制 2.熟悉编程api,能够用来写程序 1.  什么是HBASE 1.1.   概念特性 HBASE是一个数据库----可以提供数据的实时随机读写 HB ...

  10. HBase学习笔记一

    HBase简介 HBase概念 HBase的原型是谷歌的Bigtable论文 HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC上搭建起大规模结构化存储集 ...

随机推荐

  1. 移动端meta标签

    现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置,如何阻止双击放大?user-scalable=no <!-- 禁止缩放 --> <meta name=”viewpor ...

  2. 支撑大规模公有云的Kubernetes改进与优化 (1)

    Kubernetes是设计用来实施私有容器云的,然而容器作为公有云,同样需要一个管理平台,在Swarm,Mesos,Kubernetes中,基于Kubernetes已经逐渐成为容器编排的最热最主流的平 ...

  3. 解读socketserver之Tcpserver

    在解析socketserver是如工作之前,我们先看看socektserver类的继承关系图: 请求类继承关系: server类继承关系: 有了上面的继承关系图后,我们解析socketserver就轻 ...

  4. github下载项目

  5. SQLSERVER——查看阻塞信息(sp_who_lock优化无误版)

    经常会需要分析SQLSERVER的阻塞情况,尤其是某些SQL操作异常缓慢从而怀疑是有人在搞事情的情况下.网上有许多一模一样的帖子,是关于sp_who_lock这个存储过程的,然而,网上流传的这个是略有 ...

  6. BZOJ.5329.[SDOI2018]战略游戏(圆方树 虚树)

    题目链接 显然先建圆方树,方点权值为0圆点权值为1,两点间的答案就是路径权值和减去起点终点. 对于询问,显然可以建虚树.但是只需要计算两关键点间路径权值,所以不需要建出虚树.统计DFS序相邻的两关键点 ...

  7. nginx与Lua执行顺序

    Nginx顺序 Nginx 处理每一个用户请求时,都是按照若干个不同阶段(phase)依次处理的,而不是根据配置文件上的顺序. Nginx 处理请求的过程一共划分为 11 个阶段,按照执行顺序依次是 ...

  8. webwork或Struts配置网站根路径的默认页面办法

    参考资料:http://www.iteye.com/problems/24028 查阅好多资料,关于webwork或Struts处理默认页面的方式,能否像spring MVC那样直接指定默认访问页面. ...

  9. Codeforces Round #294 (Div. 2)D - A and B and Interesting Substrings 字符串

    D. A and B and Interesting Substrings time limit per test 2 seconds memory limit per test 256 megaby ...

  10. How To Allow Blocked Content on Internet Explorer

    Follow the steps below if you are tired of having to "Enable Blocked Content" in IE each t ...