收藏 分销(赏)

HBase简介来自京东很不错.pptx

上传人:精*** 文档编号:9991485 上传时间:2025-04-16 格式:PPTX 页数:50 大小:1.51MB
下载 相关 举报
HBase简介来自京东很不错.pptx_第1页
第1页 / 共50页
HBase简介来自京东很不错.pptx_第2页
第2页 / 共50页
HBase简介来自京东很不错.pptx_第3页
第3页 / 共50页
HBase简介来自京东很不错.pptx_第4页
第4页 / 共50页
HBase简介来自京东很不错.pptx_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,HBase,简介,数据部:桂宇,目录,HBase,简介,HBase,体系结构,HBase,数据模型,HBase,提供的接口,HBase,优化,HBase,用途,HBase,简介,Hadoop,生态系统,成员名,用途,Hadoop Common,Hadoop,体系最底层的一个,模块,,,为,Hadoop,各子项目提供各种,工具,,,如,:配置文件和日志操作等。,Avro,Avro,是,doug cutting,主持的,RPC,项目

2、有点,类似,Google,的,protobuf,和,Facebook,的,thrift,。,avro,用来做以后,hadoop,的,RPC,,,使,hadoop,的,RPC,模块通信速度更快、数据结构更紧凑。,Chukwa,Chukwa,是基于,Hadoop,的大集群,监控系统,,,由,yahoo,贡献。,HBase,基于,Hadoop Distributed File,System,,,是,一个开源,的,,,基于,列存储模型的分布式数据库。,HDFS,分布式文件系统,Hive,hive,是,基于,hadoop,分布式计算平台上的提供,data warehouse,的,sql,功能的一套

3、软件。使得存储在,hadoop,里面的海量数据的,汇总,,,即席,查询简单化。,hive,提供了一套,QL,的,查询语言,,,以,sql,为,基础,,,使用,起来很方便。,MapReduce,实现了,MapReduce,编程框架,Pig,Pig,是,SQL-like,语言,,,是,在,MapReduce,上构建的一种高级,查询语言,,,把,一些运算编译进,MapReduce,模型的,Map,和,Reduce,中,,,并且,用户可以定义自己的功能,。,ZooKeeper,Zookeeper,是,Google,的,Chubby,一个开源的实现。它是一个针对大型分布式系统的可靠,协调系统,,,提供,

4、的功能包括:配置维护、名字服务、分布式同步、组服务等。,ZooKeeper,的目标就是封装好复杂易出错的关键,服务,,,将,简单易用的接口和性能高效、功能稳定的系统提供给用户。,HBase,简介,HBase,是一个分布式的、,多版本的、,面向列的开源数据库,利用,Hadoop HDFS,作为其文件存储系统,,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。,利用,Hadoop MapReduce,来处理,HBase,中的海量数据,利用,Zookeeper,作为协同服务。,HBase,简介,HBase,中表的特点,大:一个表可以有上亿行,上百万列(列多时,插入变慢),面向列:面向列,

5、族,),的存储和权限控制,列,(,族,),独立检索。,稀疏:对于为空,(null),的列,并不占用存储空间,因此,表可以设计的非常稀疏。,每个,cell,中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳;,HBase,中的数据都是字符串,没有类型;,HBase,特点,强一致性,同一行数据的读写只在同一台,Region Server,上进行,水平伸缩,Region,的自动分裂以及,Master,的,balance,;,只用增加,Datanode,机器即可增加容量;,只用增加,Region Server,机器即可增加读写吞吐量,HBase,特点,行事务,同一行的列的写入

6、是原子的;,Column Oriented+,三维有序,SortedMap(RowKey,,,List(SortedMap(Column,,,List(Value,,,Timestamp),),),rowKey(ASC)+columnLabel(ASC)+Version(DESC)-value,HBase,特点,支持有限查询方式和一级索引,仅支持单行事务,仅支持三种查询方式(,single row key,、,range row key,、,scan all rows of table,),【,可通过,hive,等实现多表关联查询,】,仅基于,row key,的索引,高性能随机写,WAL(Wr

7、ite Ahead Log),HBase,特点,和,Hadoop,无缝集成,Hadoop,分析后的结果可直接写入,HBase,;,存放在,HBase,的数据可直接通过,Hadoop,来进行分析。,HBase,与,RDBMS,对比,HBase,RDBMS,数据类型,只有字符串,丰富的数据类型,数据操作,简单的增删改查,各种各样的函数,表连接,存储模式,基于列存储,基于表格结构和行存储,数据保护,更新后旧版本仍然会保留,替换,可伸缩性,轻易的进行增加节点,兼容性高,需要中间层,牺牲功能,目录,HBase,简介,HBase,体系结构,HBase,数据模型,HBase,提供的接口,HBase,优化,H

8、Base,用途,HBase,体系结构,HBase,体系结构,Client,包含访问,HBase,的接口并维护,cache,来加快对,HBase,的访问,Zookeeper,保证任何时候,集群中只有一个,master,存贮所有,Region,的寻址入口。,实时监控,Region server,的上线和下线信息。并实时通知给,Master,存储,HBase,的,schema,和,table,元数据,Master,为,Region server,分配,region,负责,Region server,的负载均衡,发现失效的,Region server,并重新分配其上的,region,管理用户对,tab

9、le,的增删改查操作,Region Server,Region server,维护,region,,处理对这些,region,的,IO,请求,Region server,负责切分在运行过程中变得过大的,region,-ROOT-,与,.META.,表,-ROOT-,表包含,.META.,表所在的区域列表,该表只会有一个,HRegion,;,Zookeeper,中记录了,-ROOT-,表的,location,.META.,表包含所有的用户空间区域列表,以及,RegionServer,的服务器地址;,Region,定位,16,.META.,表的一行在内存中大约占用,1KB,。并且每个,region

10、限制为,128MB,。,那么此三层结构可以保存的,region,数目为:,(128MB/1KB)*(128MB/1KB)=2(34),个,region,目录,HBase,简介,HBase,体系结构,HBase,数据模型,HBase,提供的接口,HBase,优化,HBase,用途,逻辑视图、物理视图,18,HBase,以表的形式存储数据。表由行和列组成。列划分为若干个列族,(row family),Row Key,Time Stamp,CF,contents,:,CF,anchor,:,CF,mime,:,“,“,t9,“fashion.360buy,t8,“tuan.360buy,t6,.,

11、text/html,t5,.,t3,.,Row Key,Time Stamp,Column,“contents:,t6,.,t5,.,t3,.,逻辑视图,物理视图,Row Key,Time Stamp,Column anchor:,t9,anchor:,“fashion.360buy,t8,anchor:,“tuan.360buy,Row Key,Time Stamp,Column mime:,t6,text/html,HBase,每个列族存储为一个,Store,HBase,数据表中一些关键概念,Row key,键,Column Family,列族,Cell qualifier,列族修饰符(列

12、Timestamp,时间戳,Region,区域,键,Row key,表中行的键是字节数组,(,最大长度是,64KB),任何字符串都可以作为键;,表中的行根据行的键值进行排序,数据按照,Row key,的字节序,(byte order),排序存储;,字典序对,int,排序的结果是,1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,9,91,92,93,94,95,96,97,98,99,。要保持整形的自然序,行键必须用,0,作左填充,所有对表的访问都要通过键,通过单个,row key,访问,通过,row key,的,range,全表扫描,列族,Colum

13、n Family,HBase,表中的每个列都归属于某个列族,列族必须作为表模式,(schema),定义的一部分预先给出。如,create test,course,;,列名以列族作为前缀,每个“列族”都可以有多个列成员,(column),;如,course:math,course:english,新的列族成员可以随后按需、动态加入;,权限控制、存储以及调优都是在列族层面进行的;,同一列族成员最好有相同的访问模式和大小特征;,HBase,把同一列族里面的数据存储在同一目录下,由几个文件保存。,单元格修饰符,Cell qualifier,通过,列族,:,单元格修饰符,,可以具体到某个列;,可以把单元

14、格修饰符认为是实际的列名;,在列族存在,客户端随时可以把列添加到列族;,HTable table=new HTable(conf,tableName);,Get get=new Get(rowKey.getBytes();,Result rs=table.get(get);,for(KeyValue kv:rs.raw(),System.out.print(new String(kv.getRow()+);,System.out.print(new String(kv.getFamily()+:);,System.out.print(new String(kv.getQualifier()+)

15、System.out.print(kv.getTimestamp()+);,System.out.println(new String(kv.getValue();,时间戳,Timestamp,在,HBase,每个,cell,存储单元对同一份数据有多个版本,根据唯一的时间戳来区分每个版本之间的差异,不同版本的数据按照时间倒序排序,最新的数据版本排在最前面。,时间戳的类型是,64,位整型。,时间戳可以由,HBase(,在数据写入时自动,),赋值,此时时间戳是精确到毫秒的当前系统时间。,时间戳也可以由客户显式赋值,如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。,区域,Reg

16、ion,HBase,自动把表水平划分成多个区域,(region),,每个,region,会保存一个表里面某段连续的数据;,每个表一开始只有一个,region,,随着数据不断插入表,,region,不断增大,当增大到一个阀值的时候,,region,就会等分会两个新的,region,;,当,table,中的行不断增多,就会有越来越多的,region,。这样一张完整的表被保存在多个,Region,上。,Cell,单元格,由行和列的坐标交叉决定;,单元格是有版本的;,单元格的内容是未解析的字节数组;,由,row key,,,column(,=+,),,,version,唯一确定的单元。,cell,中的

17、数据是没有类型的,全部是字节码形式存贮。,锁,HBase,的写操作是锁行的,每一行都是一个原子元素,无论对行进行访问的事务设计多少列,对行的更新都是原子的。都可以加锁。这使得加锁模型简单化。,HBase,中数据表的物理存储方式,物理存储,28,1,、,Table,中的所有行都按照,row key,的字典序排列。,2,、,Table,在行的方向上分割为多个,HRegion,。,物理存储,29,3,、,Region,按大小分割的,每个表一开始只有一个,region,,随着数据不断插入表,,region,不断增大,当增大到一个阀值的时候,,HRegion,就会等分会两个新的,HRegion,。当,a

18、ble,中的行不断增多,就会有越来越多的,HRegion,。,物理存储,30,4,、,HRegion,是,HBase,中分布式存储和负载均衡的最小单元。最小单元就表示不同的,HRegion,可以分布在不同的,HRegion server,上。但一个,HRegion,是不会拆分到多个,server,上的。,物理存储,31,5,、,HRegion,虽然是,分布式存储,的最小单元,但并不是,存储,的最小单元。,事实上,,HRegion,由一个或者多个,Store,组成,每个,store,保存一个,columns family,。,每个,Strore,又由一个,memStore,和,0,至多个,Sto

19、reFile,组成。如图:,StoreFile,以,HFile,格式保存在,HDFS,上。,物理存储,32,HFile,的格式为:,物理存储,HFile,分为六个部分:,Data Block,段,:保存表中的数据,这部分可以被压缩,Meta Block,段,(,可选的,),:保存用户自定义的,kv,对,可以被压缩。,File Info,段,:,HFile,的元信息,不被压缩,用户也可以在这一部分添加自己的元信息。,Data Block Index,段,:,Data Block,的索引。每条索引的,key,是被索引的,block,的第一条记录的,key,。,Meta Block Index,段,

20、可选的,),:,Meta Block,的索引。,Trailer,段,:这一段是定长的。保存了每一段的偏移量,读取一个,HFile,时,会 首先读取,Trailer,,,Trailer,保存了每个段的起始位置,(,段的,Magic Number,用来 做安全,check),,然后,,DataBlock Index,会被读取到内存中,这样,当检索 某个,key,时,不需要扫描整个,HFile,,而只需从内存中找到,key,所在的,block,,通过一次磁盘,io,将整个,block,读取到内存中,再找到需要的,key,Data Block Index,采用,LRU,机制淘汰。,HFile,的,

21、Data Block,,,Meta Block,通常采用压缩方式存储,压缩之后可以大大减少网络,IO,和磁盘,IO,,随之而来的开销当然是需要花费,cpu,进行压缩和解压缩。,目标,Hfile,的压缩支持两种方式:,Gzip,,,Lzo,。,物理存储,34,HLog(WAL log),HLog,文件就是一个普通的,Hadoop Sequence File,,,Sequence File,的,Key,是,HLogKey,对象,,HLogKey,中记录了写入数据的归属信息,除了,table,和,region,名字外,同时还包括,sequence number,和,timestamp,,,times

22、tamp,是”写入时间”,,sequence number,的起始值为,0,,或者是最近一次存入文件系统中,sequence number,。,HLog Sequece File,的,Value,是,HBase,的,KeyValue,对象,即对应,HFile,中的,KeyValue,,可参见上文描述。,目录,HBase,简介,HBase,体系结构,HBase,数据模型,HBase,提供的接口,HBase,优化,HBase,用途,HBase,交互接口,Native Java API,,最常规和高效的访问方式,适合,Hadoop MapReduce Job,并行批处理,HBase,表数据,HBas

23、e Shell,,,HBase,的命令行工具,最简单的接口,适合,HBase,管理使用,Thrift Gateway,,利用,Thrift,序列化技术,支持,C+,,,PHP,,,Python,等多种语言,适合其他异构系统在线访问,HBase,表数据,REST Gateway,,支持,REST,风格的,Http API,访问,HBase,,解除了语言限制,Hive,,使用类似,SQL,语言来访问,HBase,Pig,,可以使用,Pig Latin,流式编程语言来操作,HBase,中的数据,和,Hive,类似,本质最终也是编译成,MapReduce Job,来处理,HBase,表数据,适合做数据

24、统计,目录,HBase,简介,HBase,体系结构,HBase,数据模型,HBase,提供的接口,HBase,优化,HBase,用途,HBase,优化,配置优化,1,zookeeper.session.timeout(df:180000ms),hbase.regionserver.handler.count(df:10),hbase.hregion.max.filesize(df:256M),hbase.regionserver.global.memstore.upperLimit/lowerLimit(0.4/0.35),hfile.block.cache.size(df:0.2),hbas

25、e.hstore.blockingStoreFiles(df:7),hbase.hregion.memstore.block.multiplier(df:2),。,HBase,优化,配置优化,2,写速度关键因素,Table region,分布均衡;,单台,region server,的,region,数;,hbase.regionserver.handler.count,hbase.regionserver.global.memstore.upperLimit,hbase.hregion.memstore.block.multiplier,hbase.hstore.blockingStoreF

26、iles,hbase.hregion.max.filesize,HBase,优化,配置优化,3,读速度关键因素,单台,Region Server,上的,Region,数;,StoreFile,数;,bloomfilter,;,in-memory flag;,blockcache,设置;,hfile.block.cache.size,;,HBase,优化,客户端优化(,native java,),客户端写,多,HTable,并发写,设置,Htable,的,Auto Flush(false),、,Write Buffer(bigger),、,WAL Flag(close),批量写,多线程并发写,客

27、户端读,多,HTable,并发读,设置,Htable,的,Scanner Caching,、,Scan Attribute Selection,、,Close ResultScanner,批量,读,多线程并发,读,HBase,优化,业务优化,在可能的情况下,适当调整业务规则,顺应,HBase,的特征,以便充分利用,HBase,的优势,HBase,优化,设计优化,充分利用硬件资源,,Pre-Creating Regions,合理设计,Row Key,少,Column Family,(低于,3,个为宜),In Memory,Max Version,Time To Live,启用,LZO,压缩,HB

28、ase,优化,其他优化,JVM,设置,避免,CMS concurrent mode failure,目录,HBase,简介,HBase,体系结构,HBase,数据模型,HBase,提供的接口,HBase,优化,HBase,用途,HBase,适用场景,摘自:,HBase Facebook The Technology Behind Messages(and more.),目录,性能测试,HBase,基本性能参数,3,台,RegionServer.,每台,8G,内存,,8,核,1,亿行,Row/s,MB/s,Row/s Per node,随机写,14789,14.789,4930,随机写,(noLog),22180,22.180,7393,随机读,1996,1.996,665,顺序读,10678,10.678,3559,Hfile,性能测试,none,gz,lzo,Write,20718,23885,55147,Full Scan,41436,94937,100000,Random Seek,600,989,956,Random Short Scan,12241,25568,25655,A,ny,Q,uestions,

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服