2023Hbase存储优化方案例.docx

上传人:lao****ou 文档编号:397289 上传时间:2023-10-22 格式:DOCX 页数:41 大小:716.36KB
下载 相关 举报
2023Hbase存储优化方案例.docx_第1页
第1页 / 共41页
2023Hbase存储优化方案例.docx_第2页
第2页 / 共41页
2023Hbase存储优化方案例.docx_第3页
第3页 / 共41页
2023Hbase存储优化方案例.docx_第4页
第4页 / 共41页
2023Hbase存储优化方案例.docx_第5页
第5页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2023Hbase存储优化方案例.docx》由会员分享,可在线阅读,更多相关《2023Hbase存储优化方案例.docx(41页珍藏版)》请在第一文库网上搜索。

1、开篇辞最近工作中用到亿级数据的优化问题,hive尝试了一些方法,石沉大海了,查询都得几分钟,z这肯定不行啊,还得优化,于是另一个部门尝试用hbase数族解决了这个问题,5亿的数据秒级返回结果,这里记录一下我最近学习HbaSe的学习总结吧。HbaSe的基础概念HBaSe是基于APaCheHadOOP的面向列的NOSQ1数据库,是GOOg1e的BigTab1e的开源实现。HBaSe是一个针对半结构化数据的开源的、多版本的、可伸缩的、高可靠的、高性能的、分布式的和面向列的动态模式数据库。HBaSe和传统关系数据库不同,它采用了BigTabIe的数据模型增强的稀疏排序映射表(Key/Va1ue),其中

2、,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问。HBase的目标是存储并处理大型的数据,也就是仅用普通的硬件配置,就能够处理上千亿的行和几百万的列所组成的超大型数据库。Hadoop是一个高容错、高延时的分布式文件系统和高并发的批处理系统,不适用于提供实时计算,而HBaSe是可以提供实时计算的分布式数据库,数据被保存在HDFS(分布式文件系统)上,由HDFS保证其高容错性。HBase上的数据是以二进制流的形式存储在HDFS上的数据块中的,但是,HBase上的存储数据对于HDFS是透明的。HBase可以直接使用本地文件系统,也可以使用Hadoop的HDFSo

3、HBase中保存的数据可以使用MaPRedUCe来处理,它将数据存储和并行计算有机地结合在一起。HBase是按列族进行数据存储的。每个列族会包括许多列,并且这些列是经常需要同时处理的属性。也就是说,HBase把经常需要一起处理的列构成列族一起存放,从而避免了需要对这些列进行重构的操作。HBaSe在充分利用列式存储优势的同时,通过列族减少列连接的需求。HbaSe的SheI1命令一般操作DD1操作数据定义语言(DataDefination1anguage,DD1)操作主要用来定义、修改和查询表的数据库模式。1.创建一个表hbase(main):014:01istTAB1EStutab1etest4

4、.册IJhbase(main):016:0a1tertab1e,NAME=co1umn-fama1y,METHOD=,de1eteUpdatinga11regionswiththenewschema.1/1regionsupdated.Done.0row(s)in3.0220seconds然后删除一个表。6.查询表是否存DM1操作DM1(DataManipu1ation1anguage,数据操作语言)操作主要用来对表的数据进行添加、修改、获取、删除和查询。1.插入数据给emp表的rw1行分别插入3个列。2.获取数据获取emp表的rw1行的所获取emp表的rw1行Co1f1列族的所有数据。hba

5、se(main):035:0getemp,rw1,co1_f11row(s)in0.0340seconds1row(s)in0.0140secondshbase(main):039:0get,emprw1jCO1UMN=co1f1:age,TIMESTAMP=1463055735107)CE11CO1UMNco1f1:agetmestamp=1463055735107,va1ue=20CO1UMNCE11co1f1:agetmestamp=1463055893492,va1ue=22hbase(main):040:0get,emp,rw1(CO1UMN=co1f1:age,T1MESTAMP=

6、1463055893492hbase(main):041:0scan,emp,ROWCO1UMN+CE11idco1umn=co1_f1age,timstamp=1463055893492jva1ue=2idco1umn=co1_f1:name,timestamp=1463055709542jva1ue=tanggaoidco1umn=co1_f1:sex,timestamp=1463055753395,va1ue=boyhbase(main):042:0de1eteemp,rw1,co1_f1:age0row(s)in0.0200seconds检查删除操作的结果。truncate会把表分区也

7、清除掉HBase表实例下面将以一个“学生成绩表”的例子来介绍常用的HBaSe命令的使用方法。图1是一张学生成绩单,其中,name是行键,grade是一个特殊列族,只有一列并且没有名字(列族下面的列是可以没有名字的),c。UrSe是一个列族,由3个列组成(Chinesemath和eng1ish)o用户可以根据需要在course中建立更多的列,如computingsPhySiCS等。学生成绩表nafecoursegradeChinesematheng1ishJim190858STom9710092图1学生成绩单1.建立一个表scores,包含两个列族:grade和courseput,scores,

8、3im1,grade:,1put,scores,Jim,course:Chinese,90putscores,3im,course:math,85,putscoresJim,course:eng1ishj85putscores,Tom,grade:,2,putscoresjTom,course:Chinese,97put,scores,Tom,course:math,100,putscores,Tom,course:eng1ish,92样表结构就建立起来了,列族里边可以自由添加子列。如果列族下没有子列,则只加“:即可。3,根据键值查询数据查看SCoreS表中的Jim行的相关数据。查看SCore

9、S表中Jim行、CoUrSe列族中math列的值。或者用以下代码。上述命令会显示所有数据行,也就是TOm和Jim的所有课程的成绩,包括Chinese,math和eng1ish。为了限制返回的结果,用户可以指定一些修饰词,如TIMERANGE、FI1TER、1IMIT、STARTROW、STOPROW、TIMESTAMP、MAX1ENGTH或CO1UMN。获取Jim和TOm的eng1ish的成绩。hbase(main):012:putscores,Tom,course:computing,90namespace篇基本概念在关系数据库系统中,命名空间namespace指的是一个表的逻辑分组,同一组

10、中的表有类似的用途。命名空间的概念为即将到来的多租户特性打下基础:配额管理(QuotaManagement(HBASE-8410):限制一个namespace可以使用的资源,资源包括region和tab1e等;命名空间安全管理(NameSPaCeSeCUrityAdministration(HBASE-9206):提供了另一个层面的多租户安全管理;RegiOn服务器组(Regionservergroups(HBASE-6721):一个命名空间或一张表,可以被固定到一组regionservers,从而保证了数据隔离性。命名空间管理命名空间可以被创建、移除、修改。表和命名空间的隶属关系在在创建表时

11、决定,通过以下格式指定::当为一张表指定命名空间之后,对表的操作都要加命名空间,否则会找不到表。相关SheH操作如下所示:1. a1ter.namespace(一般用于添加删除一个属性,很少使用)hbase(main):006:0he1p,a1ter-namespace,Toadd/modifyaproperty:#添加,修改一个属性hbasea1ter.namespacens1,METHOD=set,PROPERTY-NAME,=,PROPERTY_VA1UE,Tode1eteaproperty:#删除一个属性hbasea1ter_namespacens1,METHOD=unset,NAME

12、=,PROPERTY_NAME,2. create,namespacehbase(main):007:0he1pcreate_namespace,Createnamespace;passnamespacename,andoptiona11yadictionaryofnamespaceconfiguration.#通过命名空间的名称,属性创建命名空间Examp1es:hbasecreate_namespace,ns1,3. describenamespacehbase(main):008:0he1pdescribe_namespaceDescribethenamednamespace.Forex

13、amp1e:#描述命名空间hbasedescribe_namespacedefau1t,examp1e4. drop_namespace(前提是该namespace是空的)hbase(main):012:0*he1p,drop-namespaceDropthenamednamespace.Thenamespacemustbeempty.#删除一个空的命名空间hbasedrop_namespacetest5. 1ist.namespacehbase(main):013:0he1pIisJnamespace1ista11namespacesinhbase.Optiona1regu1arexpres

14、sionparametercou1dbeusedtofi#列出所有的。cespce,可以进行模式匹配hbase1ist-namespace1istnamespacetab1esHBase的物理存储HBase表中的所有行都是按照行键的字典序排列的。因为一张表中包含的行的数量非常多,有时候会高达几亿行,所以需要分布存储到多台服务器上。因此,当一张表的行太多的时候,HBase就会根据行键的值对表中的行进行分区,每个行区间构成一个“分区(Region)m,包含了位于某个值域区间内的所有数据,如图1所示。图1HBaSe的RegiOn存储模式图RegionTab1eReeionRegiOn是按大小分割的,每个表一开始只有二个RegiOr1,随着数据不断插入到表中,Regior1不断增大,当增大到一个阈值的时候,Regior1就会等分为两个新的Region0当表中的行不断增多时,就会有越来越多的Region,如图2所示。Tab1eRegionRegiOr1是HBaSe中数据分发和负载均衡的最小单元,默认大小是IOOMB到200MB。不同的Region可以分布在不同的RegionServerJt但一个RegiOn不会拆分到多个RegionServer0每个RegiOnSerVer负责管理一个RegiOr1集合。如图3所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服