学习大数据开发,那么关于hbase这些点就必须掌握!

       Hbase作为大数据开发中最为火热的一个章节,凭借高可靠性、高并发读写、优雅的伸缩性等特性收到各个领域企业和个人开发者的追捧。大数据的火热程度如今还在加剧,对于初学者下面的这些关于hbase的相关知识点你就必须要了解。


       首先、我们应该先了解hbase的相关概念

       1、Row key:行主键, HBase不支持条件查询和Order by等查询,读取记录只能按Row key(及其range)或全表扫描,因此Row key需要根据业务来设计以利用其存储排序特性(Table按Row key字典序排序如1,10,100,11,2)提高性能。

       2、Column Family(列族):在表创建时声明,每个Column Family为一个存储单元。

       3、Column(列):HBase的每个列都属于一个列族,以列族名为前缀,如列article:title和article:content属于article列族,author:name和author:nickname属于author列族。

       Column不用创建表时定义即可以动态新增,同一Column Family的Columns会群聚在一个存储单元上,并依Column key排序,因此设计时应将具有相同I/O特性的Column设计在一个Column Family上以提高性能。

       4、Timestamp:HBase通过row和column确定一份数据,这份数据的值可能有多个版本,不同版本的值按照时间倒序排序,即最新的数据排在最前面,查询时默认返回最新版本。Timestamp默认为系统当前时间(精确到毫秒),也可以在写入数据时指定该值。

       5、 Value:每个值通过4个键唯一索引,tableName+RowKey+ColumnKey+Timestamp=>value

       其次、我们应该了解什么情况下使用hbase

       1. 半结构化或非结构化数据:对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用HBase。当业务发  发展需要增加存储比如一个用户的email,phone,address信息时RDBMS需要停机维护,而HBase支持动态增加.

扫描二维码关注公众号,回复: 2092445 查看本文章

       2. 记录非常稀疏:RDBMS的行有多少列是固定的,为null的列浪费了存储空间。而如上文提到的,HBase为null的Column不会被存储,这样既节省了空间又提高了读性能。

       3. 多版本数据:根据Row key和Column key定位到的Value可以有任意数量的版本值,因此对于需要存储变动历史记录的数据,用HBase就非常方便了。对于某一值,业务上一般只需要最新的值,但有时可能需要查询到历史值。

       4. 超大数据量:当数据量越来越大,RDBMS数据库撑不住了,就出现了读写分离策略,通过一个Master专门负责写操作,多个Slave负责读操作,服务器成本倍增。随着压力增加,Master撑不住了,这时就要分库了,把关联不大的数据分开部署,一些join查询不能用了,需要借助中间层。随着数据量的进一步增加,一个表的记录越来越大,查询就变得很慢,于是又得搞分表,比如按ID取模分成多个表以减少单个表的记录数。经历过这些事的人都知道过程是多么的折腾。采用HBase就简单了,只需要加机器即可,HBase会自动水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce)。

       当然,这里只是强调了hbase最为基础的几个点,求学者想要真正的学懂大数据中的hbase还应该根据相关课程,按部就班的一步步去学习,只有系统化的学习,才能够让自己的知识点形成一个整体,从而真正的掌握大数据开发的相关技能。

本文转自: 海牛学院

猜你喜欢

转载自blog.csdn.net/hainiubuluo/article/details/80916357
今日推荐