正文
hbase一个分区建议多大,hbase分布模式最好需要几个节点
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
HBase性能优化-Rowkey&列族设计
行键(RowKey)的设计 首先应该避免使用时序或单调(递减/递增)行键。
首先过滤器在RegionServer里发挥作用,即在RS层过滤掉客户端不需要的数据,以减少网络传输的数据量,以此减少查询时间,所以不会减少查询的数据量。
这个需要根据具体的业务场景来做判断 rowkey的设计主要为了方便后期的查询(条件查询语句),如果设计的合理,查询速率可以大大提升 分区的设计,主要考量的是入库HBase的速率。
LSM-Tree模式的设计让hbase的写入性能非常良好,单次写入通常在1-3ms内即可响应完成,且性能不随数据量的增长而 下降。region(相当于数据库的分表)可以ms级动态的切分和移动,保证了负载均衡性。
hbase怎么查看一个region的大小
如果环境搭建正确,hbase控制台就能看出表的大小。否则你就得上hdfs上看:转到hadoop的bin目录;./hadoop fs -du 表在hdfs上的路径。
具体步骤如下:需要知道要查询的表名和分区的起始行键或结束行键。可以使用scan命令来扫描hbase:meta表,这个表存储了所有分区的元数据信息。可以使用PrefixFilter或RowFilter来过滤出要查询的分区的记录。
HBase中表的数据是存储在RegionServer上的一个个Region中的,表的一个列族对应于一个Region。Region是按照数据行键Rowkey的字典序来存储数据的。
配置hbase.hregion.max.filesize为50GB 以fileServer为例,在使用默认的split策略--IncreasingToUpperBoundRegionSplitPolicy 的情况下,16个预分区Region, 则单个Resion容量达到 min(32,50),即32GB时分裂。
在HBase中,Region的一个列族对应一个MemStore,通常一个MemStore的默认大小为128MB(我们设置的为256MB),见参数 hbase.hregion.memstore.flush.size 。当可用内存足够时,每个MemStore可以分配128MB的空间。
hbase的作用
1、HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。
2、HBase的定位是hadoop的数据库,电脑培训发现是一个典型的Nosql,所以HBase是用来在大量数据中进行低延迟的随机查询的。
3、hbase:适合大型数据存储,其作用可以类比于传统数据库的作用,主要关注的数据的存取。hive:适合大数据的管理,统计,处理,其作用类比于传统的数据仓库,主要关注的数据的处理。
HBase调优:预分区与行键设计
像这样预先创建hbase表分区的方式,称之为预分区。hash(主键) + 年月日时(2019062315)这里只取hash(主键)的前6位,使得行键的长度正好是16,也就是8的整数倍,在64位计算机中,效果最好。
像这样预先创建hbase表分区的方式,称之为预分区。hash(主键)+年月日时(2019062315)这里只取hash(主键)的前6位,使得行键的长度正好是16,也就是8的整数倍,在64位计算机中,效果最好。
HBase 在创建表的时候,会自动为表分配一个Region,当一个 Region 达到拆分条件时(shouldSplit 为 true),HBase 中该 Region 将会进行 split,分裂为2个 Region,以此类推。
为了在hbase中确定一个单元格需要几个参数
而不同Column Family的数据则分开。由于在HBase中Column Family的数量通常很小,同时HBase建议把经常一起访问的比较类似的列放在同一个Column Family中,这样就可以在访问少数几个列时,只读取尽量少的数据。
Reference 对一个或多个单元格区域的引用。如果为引用输入一个不连续的区域,必须用括号括起来。如果引用中的每个区域只包含一行或一列,则相应的参数 row_num 或 column_num 分别为可选项。
联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。
HBase为筛选数据提供了一组过滤器,通过这个过滤器可以在HBase中的数据的多个维度(行,列,数据版本)上进行对数据的筛选操作,也就是说过滤器最终能够筛选的数据能够细化到具体的一个存储单元格上(由行键,列明,时间戳定位)。
Excel中所提的函数其实是一些预定义的公式,它们使用一些称为参数的特定数值按特定的顺序或结构进行计算。
=COUNT(C3:C8)返回C3:C8区域中非空单元格个数。C3:C8中每个都有数值,所以非空个数为6。函数COUNT在计数时,将把数值型的数字计算进去;但是错误值、空值、逻辑值、文字则被忽略。
Hbase分区
1、目前我们已经确定了hbase存储,并且采用预分区的方式并且采用rowkey进行过滤查询,那么现在考虑rowkey的设计。
2、Bulk Load的第一步会执行一个Mapreduce作业,其中使用到了HFileOutputFormat输出HBase数据文件:StoreFile。HFileOutputFormat的作用在于使得输出的HFile文件能够适应单个region。
3、就是正式的 load 阶段,最终定位到 HStore 里面的 bulkLoadFile 方法 通过 StoreFile reader 读取 StoreFile ,获取写锁,往 storefile 中新增数据。
关于hbase一个分区建议多大和hbase分布模式最好需要几个节点的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。