栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

HBase入门简介

HBase入门简介

简介:

         由于对基础服务吞吐能力进行升级,目标tps10w+,mysql数据库无法承载,限制了基础服务的能力,需要将相关数据表进行迁出至nosql中,经过调研和比较后决定使用Hbase来进行数据存储。因为作者之前工作未涉及到如此大的数据量,也没有在项目中使用过Hbase因此需要进行技术调研,考虑到有些小伙伴可能和我有一样的,因此决定将调研和开发过程通过技术博客的形势记录下来,希望能给大家带来一些帮助和思考。

Hbase概览

        Hbase简介:

                当您需要对大数据进行随机、实时读写访问时,请使用ApacheHbase™。这个项目的目标是在商品硬件集群上托管非常大的表——数十亿行和数百万列。ApacheHbase是一个开源的、分布式的、版本化的、非关系的数据库,模仿谷歌的Chang等人的结构化数据分布式存储系统。就像Bigtable利用了谷歌文件系统提供的分布式数据存储一样,ApacheHbase在Hadoop和HDFS上提供了类似大表的功能。

                                                                                                                ——apache 对hbase简介

         Hbase特性:

                        ·线性和模块化可伸缩性  

                        ·数据的强一致性

                        ·表的伸缩和配置灵活

                        ·注册表服务器之间的自动故障转移支持

                        ·简易的Java API 调用

                        ·块缓存和布隆过滤器快速实时查询

                        ·序列化支持:XML,Protobuf,二进制等

                        ·可扩展的基于jruby的(JIRB)  shell

                        ·支持导出指标经过Hadoop metrics子系统,导出到文件,ganglia,或JMX

     Hbase概念术语:

                简单来说,应用程序是以表的方式在Hbase存储数据的。表是由行和列构成的,所有的列是从属于某一个列族的。行和列的交叉点称之为cell,cell是版本化的。cell的内容是不可分割的字节数组。表的行键也是一段字节数组,所以任何东西都可以保存进去,不论是字符串或者数字。Hbase的表是按key排序的,排序方式之针对字节的。所有的表都必须要有主键-key.

                1.RowKey:主键,可以暂时对比Mysql数据库中表的主键(rowkey会和数据水平拆分region有关),请不要单纯的认为它只是一个简单的主键哦!

                2.列族Column Family:Table在水平方向有一个或者多个ColumnFamily组成,一个ColumnFamily中可以由任意多个Column组成,即ColumnFamily支持动态扩展,无需预先定义Column的数量以及类型,所有Column均以二进制格式存储,用户需要自行进行类型转换。 

              个人解读:列簇,可以先将他看成是对表中列的一个分类,根据数据的类型和修改频率来分,像我们数据表中可能很多列插入数据后基本不变,有些列后续修改比较频繁就可以将它们通过列簇进行区分出来,这样在修改到的时候性能也会提升很多,同时列簇的数量建议不要太多

               为什么列簇不要太多?

                        理由:更大的Region可以使你集群上的Region的总数量较少。 一般来言,更少的Region可以使你的集群运行更加流畅。(你可以自己随时手工将大Region切割,这样单个热点Region就会被分布在集群的更多节点上)。较少的Region较好。一般每个RegionServer在20到小几百之间。 调整Region大小以适合该数字。0.90.x 版本, 默认情况下单个Region是256MB。Region 大小的上界是 4Gb. 0.92.x 版本, 由于 HFile v2 已经将Region大小支持得大很多, (如, 20Gb).可能需要实验,基于硬件和应用需要进行配置。可以调整hbase-site.xml中的 hbase.hregion.max.filesize属性. RegionSize 也可以基于每个表设置:  HTableDescriptorhttp://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HTableDescriptor.html.

               3.列column:由Hbase中的列族ColumnFamily + 列的名称(cell)组成列。

               4.单元格cell:Hbase中通过row和columns确定的为一个存贮单元称为cell。

               5.版本version:每个 cell都保存着同一份数据的多个版本。版本通过时间戳来索引

               注:version在Hbase运行原理中也是很重要的,相同版本,最新版本,老版本有什么用,在使用要注意什么,这些都要清楚,否则你在使用中可能与遇到各种各样奇奇怪怪的问题。后面会专门写一篇Hbase版本相关的博客,在此先提醒各位同学要关注版本问题哟!!!

              6.Hbase数据结构图:

Hbase数据结构图
行健(主键)列簇A(baseA:个人信息)列簇B (baseB:个人简介 )
namesexinterestoccupation
rowkey0001张三撸啊撸程序员
rowkey0002王小莉shopping网红

              注:这张表用户表,我定义了两个列簇:根据修改频繁度和列分类(基础信息,简介),在设计Hbase表时大家要考虑冗余一些字段,也要考虑这些数据量带来存储空间大小做一些取舍衡量。

Hbase下载

        Hbase是建立Hadoop基础上的数据库文件,因此Hbase是分布式的数据库。Hbase也提供了单机版的安装。使用过程中请注意JDK,Hadoop,Hbase之间相对应的版本,避免发生未知问题!!!

        JDK 和 Hbase 版本关系表:

        Hadoop和Hbase版本关系表:

注1:Google公司有三篇重要的论文分别为《Google File System》、《Google Bigtable》和《Google MapReduce》,这三篇论文阐述了Google的三种技术,GFS分布式文件系统,Bigtable分布式数据存储系统,MapReduce编程模型。为后续解决分布式并行计算提供了参考。也为大数据技术的发展和应用提供了可能。

注2: 技术调研资料参考地址:

        Hbase apache 官方地址 

         Hbase 官方文档中文版

        看Google三篇重要论文有感 

        Hbase教程(一) Hbase入门教程

        

        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/487997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号