参考资料:HBase权威指南

一行由若干列组成,若干列又构成一个列族
一个列族的所有列存储在同一个底层的存储文件里,这个文件叫HFile
列族的数量有限制;一个列族里列的数量没限制
谓词删除:例如允许用户只保存过去一周
HBase中扩展和负载均衡的基本单位是region,一张表初始只有一个region,region大小超过限制后会拆分region变成两个
每个region只能由一个region服务器加载,每台region服务器可以同时加载多个region
HBase中有3个主要组件:客户端库、一台主服务器、多台region服务器,主服务器通过zookpper为region服务器分配region

在服务器的地址空间中执行来自客户端的代码,支持这种功能的服务端框架叫做协处理器
HBase的api主要是java代码,但也支持其他编程语言
数据存储在存储文件中(HFile),文件由连续的块组成,HFile通常保存在Hadoop分布式文件系统(HDFS)中
存储文件是不可以改变的,所以无法通过移除某个键值对来删除,解决般办法是做个删除标记

当在同一服务器上运行Hadoop和HBase时,最少会有3个java进程(DataNode、TaskTracker和RegionServer),而且在执行MapReduce作业时,进程数还会激增,要运行这些程序需要一定数量的内存、磁盘和CPU资源

使用java时,不应该为一个进程设置过多的内存,因为java重写堆时,会暂停所有进程内的逻辑并进行清理,堆越大,清理的时间就越长
如果HBase警告无法找到可执行的java安装路径,就需要在conf/hbase-env.sh文件中编辑JAVA_HOME这一行,设置正确的java安装路径

HBase只能依赖特定的Hadoop版本,因为他们之间的远程过程调用RPC是版本化的,调用方和被调用方要互相匹配,细微的差异都有可能导致通信失败

由于HBase依赖Hadoop,所以要求Hadoop的JAR必须部署在HBase的lib目录下
HBase使用的Hadoop版本必须与底层Hadoop集群上使用的Hadoop版本一致,使用Hadoop集群正在运行的JAR替换HBase的lib目录中依赖的Hadoop的JAR可以避免版本不匹配问题

集群中所有节点都需要更新为一样的JAR,否则版本不匹配会造成集群无法启动或假死现象

在服务器上禁止使用交换区,一旦服务器发生交换,HBase服务器就无法与zookeeper服务器交换信息
集群中节点时间必须一致,仅仅一分钟的偏差就有可能是集群产生莫名其妙的行为,可以使用NTP或同等功能来“同步集群的时间”

======================

参考文献:https://www.ibm.com/developerworks/cn/analytics/library/ba-cn-bigdata-hbase/index.html

HBase 适用于结构化的存储。并且 HBase 是一种列式的分布式数据库
HBase 则为大型分布式 NoSql 数据库

HBase 与 Hive 的区别:
1 Hive 适合用来对一段时间内的数据进行分析查询;
2 Hive 不应该用来进行实时的查询(Hive 的设计目的,也不是支持实时的查询)。因为它需要很长时间才可以返回结果;HBase 则非常适合用来进行大数据的实时查询
3 对于 Hive 和 HBase 的部署来说,也有一些区别,Hive 一般只要有 Hadoop 便可以工作。而 HBase 则还需要 Zookeeper 的帮助
4 HBase 本身只提供了 Java 的 API 接口,并不直接支持 SQL 的语句查询(除非与其他框架一起使用,如 Phoenix、Hive),而 Hive 则可以直接使用 HQL(一种类 SQL 语言)

HBase 的使用建议:
1 一个 HBase 数据库是否高效,很大程度会和 Row-Key 的设计有关:
1)当客户端需要频繁的写一张表,随机的 RowKey 会获得更好的性能。
2)当客户端需要频繁的读一张表,有序的 RowKey 则会获得更好的性能。
3)对于时间连续的数据(例如 log),有序的 RowKey 会很方便查询一段时间的数据(Scan 操作)
2 在大多数的情况下,一个表格不会超过 2 到 3 个 CF,而且很多情况下都是 1 个 CF 就足够了。

参考资料:https://www.jianshu.com/p/569106a3008f

Hbase表的创建的时候就必须指定列族。就像关系型数据库创建的时候必须指定具体的列是一样的。

Hbase的列族不是越多越好,官方推荐的是列族最好小于或者等于3。我们使用的场景一般是1个列族。

HBase 笔记的更多相关文章

  1. HBase笔记:对HBase原理的简单理解

    早些时候学习hadoop的技术,我一直对里面两项技术倍感困惑,一个是zookeeper,一个就是Hbase了.现在有机会专职做大数据相关的项目,终于看到了HBase实战的项目,也因此有机会搞懂Hbas ...

  2. Hbase笔记——RowKey设计

    一).什么情况下使用Hbase 1)传统数据库无法承载高速插入.大量读取. 2)Hbase适合海量,但同时也是简单的操作. 3)成熟的数据分析主题,查询模式确立不轻易改变. 二).现实场景 1.电商浏 ...

  3. HBase笔记--自定义filter

    自定义filter需要继承的类:FilterBase 类里面的方法调用顺序   方法名 作用 1 boolean filterRowKey(Cell cell) 根据row key过滤row.如果需要 ...

  4. HBase笔记--filter的使用

    HBASE过滤器介绍: 所有的过滤器都在服务端生效,叫做谓语下推(predicate push down),这样可以保证被过滤掉的数据不会被传送到客户端. 注意:        基于字符串的比较器,如 ...

  5. HBase笔记--编程实战

    HBase总结:http://blog.csdn.net/lifuxiangcaohui/article/details/39997205  (very good) Spark使用Java读取hbas ...

  6. HBase笔记--安装及启动过程中的问题

    1.使用hbase shell的时候运行命令执行失败 例如:在shell下执行 status,失败. 可能的原因:节点之间的时间差距过大 解决方法调整两个节点的时间,使二者一致,这里用了个比较笨的方法 ...

  7. HBase笔记6 过滤器

    过滤器 过滤器是GET或者SCAN时过滤结果用的,相当于SQL的where语句 HBase中的过滤器创建后会被序列化,然后分发到各个region server中,region server会还原过滤器 ...

  8. HBase笔记5(诊断)

    阻塞急救: RegionServer内存设置太小: 解决方案: 设置Region Server的内存要在conf/hbase-env.sh中添加export HBASE_REGIONSERVER_OP ...

  9. HBase笔记4(调优)

    Master/Region Server调优 JVM调优 默认的RegionServer内存是1G,而Memstore默认占40%,即400M,实在是太小了,可以通过HBASE_HEAPSIZE参数修 ...

  10. HBase 笔记3

    数据模型 Namespace 表命名空间: 多个表分到一个组进行统一的管理,需要用到表命名空间 表命名空间主要是对表分组,对不同组进行不同环境设定,如配额管理  安全管理 保留表空间: HBase中有 ...

随机推荐

  1. 【iCore1S 双核心板_ARM】例程六:WWDG看门狗实验——复位ARM

    实验原理: STM32内部包含窗口看门狗,通过看门狗可以监控程序运行,程序错误 时,未在规定时间喂狗,自动复位ARM.本实验通过按键按下,停止喂狗, 制造程序运行 错误,从而产生复位 . 实验现象: ...

  2. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-7底层驱动之滴嗒定时器

    视频简介:该视频介绍iCore3应用开发平台中的配置方法,以及在应用开发平台中的应用. 源视频包下载地址:链接:http://pan.baidu.com/s/1o7UuUwi 密码:14cx 银杏科技 ...

  3. 【Java】移动JDK路径后,修改环境变量不生效 Error: could not open `C:\Program Files\Java\jre1.8.0_131\lib\amd64\jvm.cfg'

    场景: JDK原先装在C盘的,现在移动到了D盘,并在环境变量修改了%JAVA_HOME%的新路径,但是CMD中输入java后依然报错. Error: could not open `C:\Progra ...

  4. mysql 核心知识要点

    整体知识介绍:mysql基本操作和使用,mysql优化(索引,分表等),mysql部署(读写分离,负载均衡等) 数据库基本介绍:数据库概念,常用数据库,web应用三大软件分工,PHP动态语言特点(处理 ...

  5. 面试Spring之bean的生命周期

    找工作的时候有些人会被问道Spring中Bean的生命周期,其实也就是考察一下对Spring是否熟悉,工作中很少用到其中的内容,那我们简单看一下. 在说明前可以思考一下Servlet的生命周期:实例化 ...

  6. eclipse java ee jsp tomcat Server文件夹给删了,怎么办?

    右键 选择属性 选择Switch location 就可以了

  7. Netbeans 8.1 检测不到Tomcat8.5.3以上版本已经启动的Bug

    Tomcat实际上已经启动,但是netbeans就是检测不到,只要在server.xml中,找到http/1.1的connector 添加 属性 server="Apache-Coyote/ ...

  8. ios开发之--给WebView加载进度条

    不是新东西,就是在项目里面用到H5页面的时候,中间加载延迟的时候,在最上面加载一个进度条,代码如下: // 获取屏幕 宽度.高度 bounds就是屏幕的全部区域 #define KDeviceWidt ...

  9. SQLAlchemy详细教程

    http://www.360doc.com/content/15/0914/16/360939_499094891.shtml

  10. 删除新版UniAccess Agent 办公室监控软件的方法

    UniAccess Agent 是在由LeagSoft开发的监控软件,老版本的一般安装在C:\Program Files\LeagSoft\UniAccess Agent这个目录下,一般找到这个目录点 ...