HBase专题分析及Hbase JAVA API详解_第1页
HBase专题分析及Hbase JAVA API详解_第2页
HBase专题分析及Hbase JAVA API详解_第3页
HBase专题分析及Hbase JAVA API详解_第4页
HBase专题分析及Hbase JAVA API详解_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、架构服务部架构服务部20172017年年3 3月月FASTFAST之之HBaseHBase专题分析专题分析2Hbase简介Hbase特点基本原理Hbase架构应用场景Hbase Java API应用hbase利用Hadoop HDFS作为其文件存储系统,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。利用Zookeeper作为协同服务。 Hbase是hadoop的生态系统的一个组成部分HbaseHbase简介简介HbaseHbase简介简介 HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统”。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存

2、储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。5Hbase简介Hbase特点基本原理Hbase架构应用场景Hbase Java API 应用HbaseHbase特点特点大:一个表可以有上亿行,上百万列(列多时,插入变慢)面向列:面向列(族)的存储和权限控制,列(族)独立检索。稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。每个单元(cell)中的数据可以有多个版本,默认情况下版本 号自动分配,是单元格插入时的时间戳。HBase中的数据都是字符串,没有类型;HbaseHbase特点特点每个table里有多个row key,每个row key包含若干

3、个column family,每个column family由一个或多个column 组成。Row key + column family:column + value + timestamp8Hbase简介Hbase特点基本原理Hbase架构应用场景Hbase Java API 应用基本原理基本原理Row Key 1、表中每条记录的“主键” 2、方便快速查找 Column Family 1、拥有一个名称(string) 2、包含一个或者多个相关列Column1、属于某一个column family2、包含在某一列中 Timestamp1、每个row key 唯一2、类型为long3、默认值是

4、系统时间戳Value1、字符串类型基本原理基本原理Table中的所有行都按照row key的字典序排列;类型为byte字节流 Table 在行的方向上分割为多个Region;基本原理基本原理Region按大小分割的,每个表开始只有一个region,随 着数据增多,region不断增大,当增大到一个值的时候,region就会等分会两个新的region,之后会有越来越多的region;为什么要划分,因为我们要并行化进行处理,如果是一个超大的region只能串行的处理,region越多管理可能会麻烦但是并行处理的并发度越高,处理的就越快基本原理基本原理Region虽然是分布式存储的最小单元,但并不是

5、存储的最小单元。 1、Region由一个或者多个Store组成,每个store保存一个columns family; 2、每个Strore又由一个memStore和0至多个StoreFile组成; 3、memStore存储在内存中,StoreFile存储在HDFS上。首先数据写到memstor上,当memstor存储到一定大小,在flush到storefile上,形成一个storefile基本原理基本原理Hbase支持的操作 所有操作均是基于rowkey的; 支持CRUD (Create、Read、Update和Delete)和 Scan; 单行操作 (Put 、Get 、Scan ) 多行操

6、作 (Scan 、MultiPut)没有内置join操作,需使用MapReduce解决。 14Hbase简介Hbase特点基本原理Hbase架构应用场景Hbase Java API应用Client 包含访问HBase的接口,并维护cache来加快对HBase的访问 Zookeeper 保证任何时候,集群中只有一个master 存贮所有Region的寻址入口 实时监控Region server的上线和下线信息。并实时通知给Master 存储HBase的schema和table元数据 Master 为Region server分配region 负责Region server的负载均衡 发现失效的R

7、egion server并重新分配其上的region 管理用户对table的增删改查操作 Region Server Region server维护region,处理对这些region的IO请求 Region server负责切分在运行过程中变得过大的region HBase 依赖ZooKeeper默认情况下,HBase 管理ZooKeeper 实例比如,启动或者停止ZooKeeper。 Master与RegionServers 启动时会向ZooKeeper注册Zookeeper的引入使得Master不再是单点故障 。 HBase容错性 Master容错:Zookeeper重新选择一个新的Ma

8、ster 无Master过程中,数据读取仍照常进行; 无master过程中,region切分、负载均衡等无法进行; RegionServer容错:定时向Zookeeper汇报心跳,如果一旦时 间内未出现心跳Master将该RegionServer上的Region重新分配到其他RegionServer上; 失效服务器上“预写”日志由主服务器进行分割并派送给新的RegionServer Zookeeper容错:Zookeeper是一个可靠地服务一般配置3或5个Zookeeper实例。 Hbase简介Hbase特点基本原理Hbase架构应用场景Hbase Java API应用19hbase其主要特点

9、是仿照bigtable的列势存储,对于大型的数据的存储,查询比传统数据库有巨大的优势hbase:适合大型数据存储,其作用可以类比于传统数据库的作用,主要关注的数据的存取。首先分析一下IO性能。HBase写入有memstore作为缓存,写入时可以忽略LSMT的处理,如果开启WAL,写入操作效率近似于hdfs性能。顺序读取的话,有block catch,它每次加载一个Store file的block,因此这个策略对于顺序读取具有独特的优势,测试的时候单机能有几万的QPS。但是这个策略是随机读取的噩梦,因为当读取足够随机的话,一方面缓存内容会被频繁置换,无法达到缓存的目的,并频繁引发GC;另一方面,

10、缓存读取过程是读取整个block,然后从block中选出记录,从这一层次来看,每次get实际上并非单纯的key value查找,而是相当于多次二分查找。基于以上两方面,增大内存无法解决根本问题,而用SSD作为二级缓存的话,会浪费较多的io,测试时单机QPS最高25000左右(与之前的测试基于相同的数据特征)。一般的做法是在前端加入memcache这样的纯key value缓存。综上,我们分析一下HBase的应用场景。 首先从数据特征来看适合存储于的数据类型:HBase适合结构化(单纯的、海量的key value)或半结构化的(基于key索引的图片、音乐、二进制文件等)非关系型的数据。举例来说,网页搜索相关数据、软件下载站、各种快照信息、非关系型业务二维表等。 然后,从IO来看适合做什么样的处理:HBase适合大规模写入、扫库的业务,对于随机读取,需要特殊处理。举例来说在线业务适合分页的、单表的、无基于列族做排序和分组处理的查询和展现,少量随机查询和展现;离线业务适合更灵活的统计分析处理和报表导出等。 增加hbase节点具体操作见FAST之hadoop&hbase分布式集群安装部署手册第五节集群扩展Hbase其集群同步复制特性:当主集群故障不能提供服务时,就会切换请求到备集群,保障系统整体高可用,备集群的数据能达到和主集群完全一致,业务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论