【HBase笔记】从洗袜子到hbase

HBase简介:

1、HBase是 bigtable的开源 java版本。基于 hdfs的数据库系统,提供高可靠性,高性能,列存储,可扩展性,实时读写 nosql。

2、介于 nosql和 RDBMS之间,数据只能通过主键(row key)和主键的 range进行检索。

3、只支持单行事务(可以通过 hive支持实现复杂的操作,比如多表 join)。

4、通常用于存储结构化和半结构化松散数据。

5、Hbase查询数据功能非常简单,不支持像 join这样的复杂操作和复杂事务(在行级别)。

6、支持在 Hbase中的数据类型: byte []

7、像 hadoop一样, Hbase的目标主要是通过不断增加廉价的商业服务器来提高计算和存储能力。

HBase中的表通常具有以下特征:

1、大型:一张表可以有十亿行,数百万列

2、稀疏:对于空(null)列,不会占用存储空间,因此可以将表设计得非常稀疏。

3、面向列:面向列(族)的存储和权限控制,列(族)独立检索。

为何使用 HBase

1、Hadoop是 hbase存储的基础。这几年兴起的 Hadoop拥有高性能、高稳定性、易管理的大数据应用平台。基于 Hadoop衍生出大量优秀的开放源码项目, Hadoop即将成为大数据的代名词。

2、Hadoop实现了一种分布式文件系统(HDFS)。HDFS具有高度容错的特性,可以部署在廉价的硬件上,并且为访问应用程序数据提供高吞吐量,适合那些拥有超大数据集的应用程序。一个 Hadoop基础意味着 HBase天生就具有超强的可扩展性。

3、HBase采用 Key/Value存储方式,也就是说,即使随着数据量的增加,查询的性能也很少会下降。HBase又是一个列数据库(与传统的行式数据库相比),当表中的字段很多时,甚至可以将其中一些字段放置在集群的一部分计算机上,将另一些字段放置在另一部分计算机上,这样就完全分散了负载压力。但是,如此复杂的存储结构和分布式存储方式的代价就是:即使只存储少量数据,也不会太快。因此,hbase并不快,只是在数据量大时慢得不明显。

4、任何事情都不可能只有优点,没有缺点。对于 HBase,数据分析是一个弱点,因为它基本上不支持表关联,这对 HBase甚至整个 NoSQL生态圈都是如此。如果您想要实现 group by或 orderby,您将发现要实现 MapReduce需要编写大量代码。

5、所以请不要盲目使用 HBase。

1、如果情况大致符合下列任一条件:

一,主要的要求是数据分析,例如做报告。

二:单表的数据量不超过千万。

请勿使用 HBase,使用像 MySQL或 Oracle这样的产品可以使你的脑细胞免于痛苦。

2、如果情况大致符合下列任一条件:

一:单表数据量超千万,并发相当高。

二、数据分析要求较弱,或不需要如此灵活和实时。

用 HBase吧,它不会让你失望!!!

如需转载请注明出处(创作不易请见谅)

和巨婴程序猿一起成长。让自己变得更优秀

想了解更多精彩内容,快来关注跟着巨婴去逆袭

我最近一直在思考(大数据通俗讲解)的问题,你的看法是什么呢?关注我快说出来一起交流一下吧~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200714A0OD7M00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券