Apache HBase

合集下载

hbase存储原理

hbase存储原理

hbase存储原理HBase是一个开源分布式数据库,基于列存储模型,提供多种操作弹性、实时处理能力,与Apache其它项目,如Hadoop,Hive和Pig等链接可以构建实时处理框架;HBase由Apache Software Foundation开发,它是一个实现列存储模型集成到Hadoop分布式文件系统(HDFS)的高可靠性的开源的NoSQL数据库。

2、hbase存储原理HBase数据库主要建立在HDFS之上,其本质是基于某种文件系统来存储数据的,HBase因此使用HDFS作为其底层的存储系统,HBase 的存储原理包括三个主要概念:表、行和列族。

(1)表HBase中的每个表都有一个表名,而每个表都包含一系列的列族。

(2)行HBase中的每个行都有一个行键,有任意多的列族,每个列族有任意数量的列和元素。

(3)列族HBase中的每个列族都有一个列族名称,有任意多的列,每个列都有任意数量的元素。

HBase的存储原理基于HDFS,通过利用HDFS的分布式存储、可靠性、可扩展性等优势,HBase能够高效地储存及处理大量数据,从而实现大数据处理。

HBase数据存储在HDFS中是以文件的形式存在的,HBase通过文件系统中的文件树结构来管理存储数据,文件树由表、行、列族、列和元素组成,HBase将一个表看作一个文件夹,将行看作文件,行中的列簇看作文件夹,看作文件夹的列看作文件,列中的元素看作文件的字节。

3、hbase的特点HBase的具体优势有:高可用性、可扩展性、低成本、高可靠性等:(1)高可用性HBase具有很高的可用性,可以保证数据的存储和处理的连续性,即使在数据中心出现故障时,也能够提供可靠的服务,从而确保数据的安全性。

(2)可扩展性HBase可以在任意规模上水平扩展,可以根据需要在已有的硬件基础上添加新的节点。

(3)低成本使用HBase可以节省很多成本,因为HBase可以使用廉价的硬件设备来提供服务,并且由于HBase可以横向扩展,所以使用成本更低。

hbase查询流程

hbase查询流程

hbase查询流程HBase是一个开源的分布式列式数据库,它在Hadoop文件系统(HDFS)之上构建,为大规模数据处理提供了高可靠性和高性能的存储和访问方式。

在HBase中进行查询是一项常见的操作,下面将介绍HBase查询的流程。

1. 连接HBase集群需要通过HBase客户端连接到HBase集群。

HBase客户端可以通过HBase Shell、Java API或者其他编程语言的API来实现。

连接成功后,就可以开始进行查询操作了。

2. 创建查询对象在进行查询之前,需要创建一个查询对象。

查询对象包含了查询所需的参数和限制条件,比如要查询的表名、列族、列名等。

可以通过HBase提供的API来创建查询对象。

3. 设置查询参数和限制条件在查询对象中,可以设置一些参数和限制条件来进一步精确查询的结果。

比如可以设置起始行键和结束行键来限定查询的范围,还可以设置过滤器来过滤掉不符合条件的行。

4. 执行查询操作一切准备就绪后,可以执行查询操作了。

根据查询对象的设置,HBase会在集群中的相应的Region上进行查询操作。

HBase查询是通过扫描HBase表中的数据来实现的,可以通过扫描指定的行键范围,或者使用过滤器来筛选数据。

5. 获取查询结果查询操作完成后,可以通过查询对象的方法来获取查询结果。

查询结果可以是单行的数据,也可以是多行的数据,可以根据需要进行处理。

HBase查询结果通常以键值对的形式返回,其中键表示行键,值表示对应的列值。

6. 处理查询结果获取到查询结果后,可以根据需要进行进一步的处理。

可以对查询结果进行过滤、排序、聚合等操作,以满足具体的查询需求。

处理查询结果的方式取决于具体的业务需求,可以使用编程语言提供的相关函数或者库进行处理。

7. 关闭连接查询操作完成后,需要关闭与HBase集群的连接,以释放资源。

关闭连接可以通过HBase客户端提供的相应方法来实现。

总结:HBase查询流程包括连接HBase集群、创建查询对象、设置查询参数和限制条件、执行查询操作、获取查询结果、处理查询结果和关闭连接等步骤。

HBase_官方文档(中文)

HBase_官方文档(中文)

HBase官方文档Copyright © 2010 Apache Software Foundation,盛大游戏-数据仓库团队-颜开(译)Abstract这是Apache HBase的官方文档, Hbase是一个分布式,版本化(versioned),构建在Apache Hadoop和Apache ZooKeeper上的列数据库.我(译者)熟悉Hbase的源代码,从事Hbase的开发运维工作,如果有什么地方不清楚,欢迎一起讨论。

邮箱yankaycom@Table of Contents序1. 入门1.1. 介绍1.2. 快速开始1.2.1. 下载解压最新版本1.2.2. 启动 HBase1.2.3. Shell 练习1.2.4. 停止 HBase1.2.5. 下一步该做什么1.3. 慢速开始(相对快速开始)1.3.1. 需要的软件1.3.2. HBase运行模式:单机和分布式1.3.3. 配置例子2. 升级2.1. 从HBase 0.20.x or 0.89.x 升级到 HBase 0.90.x3. 配置3.1. hbase-site.xml 和 hbase-default.xml3.1.1. HBase 默认配置3.2. hbase-env.sh3.3. log4j.properties3.4. 重要的配置3.5. 必须的配置3.6. 推荐的配置3.6.1. zookeeper.session.timeout3.6.2. hbase.regionserver.handler.count3.6.3. 大内存机器的配置3.6.4. LZO 压缩3.6.5. 更大的 Regions3.6.6. 管理 Splitting3.7. 连接Hbase集群的客户端配置和依赖3.7.1. Java客户端配置4. The HBase Shell4.1. 使用脚本4.2. Shell 技巧4.2.1. irbrc4.2.2. LOG 时间转换4.2.3. Debug5. 构建 HBase5.1. 将一个 HBase release 加入到 Apache's Maven Repository6. Developers6.1. IDEs6.1.1. Eclipse6.2. 单元测试6.2.1. Mocito7. HBase 和 MapReduce7.1. 默认 HBase MapReduce 分割器(Splitter)7.2. HBase Input MapReduce 例子7.3. 在一个MapReduce Job中访问其他的HBase Tables7.4. 预测执行8. HBase 的 Schema 设计8.1. Schema 创建8.2. column families的数量8.3. 单调递增Row Keys/时序数据(log)8.4. 尽量最小化row和column的大小8.5. 版本的时间9. Metrics9.1. Metric 安装9.2. RegionServer Metrics9.2.1. hbase.regionserver.blockCacheCount9.2.2. hbase.regionserver.blockCacheFree9.2.3. hbase.regionserver.blockCacheHitRatio9.2.4. hbase.regionserver.blockCacheSize9.2.5. pactionQueueSize9.2.6. hbase.regionserver.fsReadLatency_avg_time9.2.7. hbase.regionserver.fsReadLatency_num_ops9.2.8. hbase.regionserver.fsSyncLatency_avg_time9.2.9. hbase.regionserver.fsSyncLatency_num_ops9.2.10. hbase.regionserver.fsWriteLatency_avg_time9.2.11. hbase.regionserver.fsWriteLatency_num_ops9.2.12. hbase.regionserver.memstoreSizeMB9.2.13. hbase.regionserver.regions9.2.14. hbase.regionserver.requests9.2.15. hbase.regionserver.storeFileIndexSizeMB9.2.16. hbase.regionserver.stores9.2.17. hbase.regionserver.storeFiles10. 跨集群复制11. 数据模型11.1. 概念视图11.2. 物理视图11.3. 表11.4. 行11.5. Column Family11.6. Cells11.7. 版本11.7.1. Hbase的操作(包含版本操作)11.7.2. 现有的限制12. 架构12.1. 客户端12.1.1. 连接12.1.2. 写缓冲和批量操作12.1.3. Filters12.2. Daemons12.2.1. Master12.2.2. RegionServer12.3. Regions12.3.1. Region大小12.3.2. Region Splits12.3.3. Region负载均衡12.3.4. Store12.4. Write Ahead Log (WAL)12.4.1. 目的12.4.2. WAL Flushing12.4.3. WAL Splitting13. 性能调优13.1. Java13.1.1. 垃圾收集和HBase13.2. 配置13.2.1. Regions的数目13.2.2. 管理压缩13.2.3. 压缩13.2.4. hbase.regionserver.handler.count13.2.5. hfile.block.cache.size13.2.6. hbase.regionserver.global.memstore.upperLimit13.2.7. hbase.regionserver.global.memstore.lowerLimit13.2.8. hbase.hstore.blockingStoreFiles13.2.9. hbase.hregion.memstore.block.multiplier13.3. Column Families的数目13.4. 数据聚集13.5. 批量Loading13.5.1. Table创建: 预创建Regions13.6. HBase客户端13.6.1. AutoFlush13.6.2. Scan Caching13.6.3. Scan 属性选择13.6.4. 关闭 ResultScanners13.6.5. 块缓存13.6.6. Row Keys的负载优化14. Bloom Filters14.1. 配置14.1.1. HColumnDescriptor 配置14.1.2. io.hfile.bloom.enabled 全局关闭开关14.1.3. io.hfile.bloom.error.rate14.1.4. io.hfile.bloom.max.fold14.2. Bloom StoreFile footprint14.2.1. StoreFile中的BloomFilter, FileInfo数据结构14.2.2. 在 StoreFile 元数据中的BloomFilter entries15. Hbase的故障排除和Debug15.1. 一般准则15.2. Logs15.2.1. Log 位置15.3. 工具15.3.1. 15.3.2. tail15.3.3. top15.3.4. jps15.3.5. jstack15.3.6. OpenTSDB15.3.7. clusterssh+top15.4. 客户端15.4.1. ScannerTimeoutException15.5. RegionServer15.5.1. 启动错误15.5.2. 运行时错误15.5.3. 终止错误15.6. Master15.6.1. 启动错误15.6.2. 终止错误A. 工具A.1. HBase hbckA.2. HFile 工具A.3. WAL ToolsA.3.1. HLog 工具A.4. 压缩工具A.5. Node下线A.5.1. 依次重启B. HBase中的压缩B.1. 测试压缩工具B.2. hbase.regionserver.codecsB.3. LZOB.4. GZIPC. FAQD. YCSB: 雅虎云服务测试和HbaseIndexList of Tables11.1. 表 webtable11.2. ColumnFamily anchor11.3. ColumnFamily contents序这本书是HBase的官方指南。

hbase概述

hbase概述

hbase概述HBase是Apache Hadoop生态系统中的一个分布式非关系型数据库。

它是以Google的Bigtable为基础实现的,旨在为大规模分布式系统提供高可靠性、高性能的数据存储和处理能力。

HBase的设计目标是适用于海量数据环境下的随机实时读写,并能够容忍硬件故障。

HBase的特点和优势主要包括以下几个方面:1.分布式架构:HBase使用分布式架构来存储数据,数据可以水平扩展到数千台机器上。

它采用了Hadoop的HDFS(Hadoop Distributed File System)作为底层存储,可以自动在集群中多节点上复制数据,实现分布式存储和高可靠性。

2.高可扩展性:由于HBase采用分布式架构,可以通过简单地增加集群中的机器来扩展系统的容量和性能。

通过添加更多的Region Server节点,HBase能够支持PB级别的数据规模。

3.列式存储:HBase将数据以列式存储在磁盘上,相比传统的行式数据库,这种存储方式在某些场景下可以提供更好的查询性能。

此外,HBase还支持列族的概念,可以将相关的列进行组织,提高查询效率。

4.高性能读写:HBase支持高性能的读写操作,可以满足实时查询和更新的需求。

HBase的数据模型和存储方式使得它在随机读写方面表现出色,适合处理大量的随机访问操作。

5.强一致性:HBase提供强一致性的数据一致性模型,即读取操作总是可以看到最新的数据。

这种特性使得HBase适用于许多需要数据一致性的应用场景,如金融、电信等领域。

6.数据复制和容错:HBase采用副本机制来实现数据的复制和容错。

可以将数据副本存储在不同的Region Server上,以提高系统的容错能力和可靠性。

当某个副本节点发生故障时,可以自动切换到其他副本节点进行读写操作。

7.可伸缩的数据模型:HBase数据模型是非常灵活和可伸缩的,可以存储具有不同结构的数据。

HBase支持动态添加和删除列族,以及在行级别上进行事务处理。

HBase

HBase

HBase是什么?HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作,如右侧的图所示:HBase在产品中还包含了Jetty,在HBase启动时采用嵌入式的方式来启动Jetty,因此可以通过web 界面对HBase进行管理和查看当前运行的一些状态,非常轻巧。

为什么采用HBase?HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方面读写你的大数据内容。

HBase是介于Map Entry(key&value)和DB Row之间的一种数据存储方式。

就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。

简单来说,你在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,在HBase中没有表与表之间关联查询。

你只需要告诉你的数据存储到Hbase的那个column families就可以了,不需要指定它的具体类型:char,varchar,int,tinyint,text等等。

但是你需要注意HBase中不包含事务此类的功能。

Apache HBase和Google Bigtable有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。

表是疏松的存储的,因此用户可以给行定义各种不同的列,对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。

如何运行HBase?从Apache的HBase的镜像网站上下载一个稳定版本的HBase/apache/hbase/stable/hbase-0.20.6.tar.gz,下载完成后,对其进行解压缩。

hbase连接参数

hbase连接参数

HBase连接参数是用于连接HBase数据库的配置参数,涵盖了定义、用法、重点、难点和注意事项等方面。

下面将详细介绍这些参数,并结合应用案例进行说明。

1.定义HBase连接参数是指在客户端连接HBase时需要配置的参数,用于建立与HBase服务器的连接,并指定客户端与服务器之间的通信方式。

2.用法HBase连接参数通常在客户端应用程序中设置,用于指定HBase服务器的地址、端口号以及其他连接相关的配置。

例如,在Java中使用HBase客户端连接HBase时,需要创建一个Configuration对象,并通过set方法设置各个连接参数。

3.重点HBase连接参数的重点包括以下几个方面:●HBase服务器的地址和端口号:这是连接HBase服务器的必要参数,用于指定HBase服务器的网络地址和监听端口。

●客户端的线程池大小:该参数用于设置客户端连接池的大小,以控制并发连接的数量。

●连接超时时间:指定客户端与服务器之间的连接超时时间,以防止长时间等待无响应的服务器。

●其他高级配置:如心跳检测、压缩等,可根据实际需求进行配置。

4.难点HBase连接参数的难点主要包括以下几点:●客户端与服务器的网络通信问题:需要确保客户端与服务器之间的网络通信正常,避免出现连接超时、丢包等问题。

●参数配置的合理性和性能优化:需要根据实际应用场景和性能需求,合理配置连接参数,并对其进行性能优化,以充分发挥HBase的性能优势。

●HBase的安全性配置:HBase支持Kerberos认证和SASL加密通信,需要正确配置相关参数以确保数据的安全性。

5.注意事项在使用HBase连接参数时,需要注意以下几点:●正确设置HBase服务器的地址和端口号,确保连接的可用性。

●根据实际需求配置线程池大小,避免资源浪费或连接不足的问题。

●根据实际网络状况设置合适的连接超时时间,以避免长时间等待无响应的服务器。

●注意配置安全性相关的参数,如Kerberos认证和SASL加密通信等,以确保数据的安全性。

hbase常用查询方法

hbase常用查询方法

hbase常用查询方法
HBase是一个分布式、面向列的NoSQL数据库,常用于存储大规模的结构化数据。

在HBase中,常用的查询方法包括使用Scan操作和Get操作。

首先,让我们来看看Scan操作。

Scan操作允许用户按照指定的条件扫描整个表或者指定的行范围,以获取符合条件的数据。

用户可以指定起始行键和结束行键,也可以设置过滤器来筛选需要的数据。

Scan操作可以用于批量读取大量数据,适用于需要对整个表或者大范围数据进行分析的场景。

其次,Get操作是针对单行数据的查询操作。

用户可以通过指定行键来获取对应行的数据。

Get操作非常适合用于需要快速获取特定行数据的场景,比如根据唯一标识获取特定的记录。

除了Scan和Get操作,HBase还支持使用过滤器来进行更精细化的数据查询。

过滤器可以基于行键、列族、列限定符等条件来过滤数据,从而实现更精确的查询需求。

此外,HBase还提供了针对时间戳的查询功能,用户可以根据
时间范围来获取历史数据或者实现数据版本控制。

总的来说,HBase常用的查询方法包括Scan操作、Get操作、
过滤器查询以及针对时间戳的查询。

这些方法可以满足不同场景下
的数据查询需求,同时也可以通过合理的设计和优化来提高查询性
能和效率。

希望这些信息能够帮助你更好地理解HBase的查询方法。

hbase中的region的概念

hbase中的region的概念

HBase是一种分布式列存储系统,它构建在Hadoop文件系统(HDFS)之上,以提供对大型数据集的快速随机读取和写入。

HBase 中的一个核心概念是Region,本文将深入探讨HBase中Region的概念、特点和应用场景。

一、Region的概念1.1 Region的定义在HBase中,Region是数据表的逻辑划分单元,它将表的数据按照一定的规则分割成多个片段,每个片段称为一个Region。

每个Region负责存储表中某个范围的数据,并在HBase集群中分布存储。

1.2 Region的关键特点• 数据不断写入时,表的数据会被动态分割成多个Region。

• 每个Region都有一个唯一的Region ID。

• 每个Region由一些列的存储单元(HFiles)组成。

1.3 Region的物理结构每个Region对应一个HFile目录,其中包含了该Region的所有存储文件。

HBase根据Region的范围和HFile的大小进行数据的分割和存储,实现了数据的快速查找和读写。

二、Region的应用场景2.1 数据分片与负载均衡HBase将表的数据按行键范围划分成多个Region,每个Region存储一定范围的行键。

当数据不断写入时,表的数据会被动态分割成多个Region,从而实现了数据的分片存储。

这种数据的分片存储机制,可以实现数据负载均衡,确保集群中每个RegionServer上存储的数据量相对均衡,提高了数据的读写性能。

2.2 高可用性和容错性HBase通过副本机制,保证了Region的高可用性和容错性。

当一个RegionServer宕机时,HBase会在其他可用的RegionServer上复制并重新分配被宕机Region的副本,从而实现了数据的自动恢复和故障转移。

这种副本机制保证了数据的安全性和可靠性,提高了系统的稳定性和可用性。

2.3 数据的扩展性和动态性能调整HBase的Region存储了一定范围的行键数据,当数据量过大时,可以根据需要对表进行水平扩展,动态地增加Region,从而实现了数据的扩展性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Apache H Base 丁晔磊 S olu&ons C onsultant ding@• HBase简介• HBase数据访问接口 • HBase架构• HBase设计讨论 • 总结• HBase简介• HBase数据访问接口 • HBase架构• HBase设计讨论 • 总结什么是HBase• HBase是运行在HDFS的NoSQL数据库• 特点:• 具有高可用性与容错性• 具有很强的水平扩展性,支持数据处理的高吞吐量 • 支持处理包含海量数据的数据表格• 开源的Apache项目• HDFS提供的功能:• 容错性• 可扩展性HBase的应用场景• 使用HBase的场景:• 需要随机读写• 需要在TB甚至PB级数据集上每秒执行上万操作• 访问数据的模式是已知的、直接的• 不使用HBase的场景:• 只是添加写(append),处理时需要读取所有数据记录 • 主要执行自主(Ad-­‐hoc)分析• 一台服务器就足够处理所有数据HBase不是传统关系型数据库RDBMS HBase数据布局 基于行或列 基于列簇事务 支持 只支持单行事务 查询语言 SQL get/put/scan安全 认证/授权 Kerberos索引 支持 行键(rowkey)最大数据集支持 TB PB+读写吞吐率 ~1,000/秒 1,000,000+/秒HBase v s. R DBMS 数据表设计• 设计RDBMS数据表步骤:• 确定所有要存储数据的类型• 确定数据元素之间的关系• 创建表、列、外键以维护这些关系 • 设计HBase数据表步骤:• 确定所有要存储数据的类型• 定义行键、数据存储布局(layout)• HBase以表格的形式存储数据• HBase数据表其实质是排序的、分布式的散列表• 数据表被自动切分为不同的分片(region)• 分片之间不存在交叠部分• 客户端程序需要通过RegionServer后台进程访问region • RegionServer一般运行在集群的工作节点上• RegionServer往往支持多个region(来源于多张表格)• 数据表由行构成,每一行数据包含多个列簇(column f amily),每个列簇包含多个列• 同一列簇的所有列存储在一起• 不同的列簇可以具有不同的属性,比如版本数量、压缩算法等• 每一列都通过列簇及其限定符(Qualifier)命名• 例如contacXnfo:lname,其中:分隔了列簇与限定符• 每一行都有一个行键(row k ey)唯一标识• 行键是HBase数据表的唯一索引信息• 数据单元格(行与列的交叉部分)存储实际的数据• 数据是任意的字节数组HBase列簇的使用• 不同的列簇:• 数据不是经常共同使用的• 数据具有不同的属性,比如压缩格式、版本数量等数据磁盘存储 HBase• 不同的列簇存储在不同的文件中• 只有非空的数据才会被实际存储• 每个数据单元格都可以存放多个版本的数据 • 通过时间戳进行,默认版本数3,降序排列 • 行键+列名(列簇:限定符)+时间戳 => 数据值 HBase多版本控制HBase支持的操作• Get/Scan读取数据• Get读取行键标识的行• Scan读取所有行• Scan可以通过指定起始行键与结束行键读取数据表中的片段 • Put修改数据• 数据通过行键标识• 新增数据列可能之前尚未存在• Delete“删除”数据• 数据通过行键标识• 数据不是真正从HDFS上删除,而是增加一个删除的标记• 实际的删除操作由其他线程异步完成HBase集群部署HBase管理节点• HBase管理节点(master)用于协调RegionServer • 协调每个RegionServer应该管理哪些region• 随着数据的增加、删除,RegionServer上的region会发生变化 • 执行数据表创建、修改、删除等元数据处理任务Zookeeper• HBase通过启动多个管理节点实现HA• 只有一个管理节点是“活”的,用于管理HBase集群 • Zookeeper服务用于协调多个管理节点• Zookeeper服务用于确定“主”管理节点 • 启动时,所有管理节点连接到zookeeper,竞争上岗 • 当主控管理节点发生故障时,剩余管理节点竞争上岗目录• HBase简介• HBase数据访问接口 • HBase架构• HBase设计讨论 • 总结HBase S hell• 与HBase通信的交互式Shell• HBase S hell使用JRuby• 利用Ruby在Java客户端程序上进行了封装• 在命令中采用Ruby的语法• 参数使用与其他的Shell (比如bash)有些不同 • 命令中的参数使用单引号(‘)启动HBase S hell • $> h base s hell基本命令命令行帮助查看HBase状态 查看HBase版本信息• 创建时只需要声明表名与列簇名 • 每个表至少需要一个列簇• 其他设置都可以修改• HBase没有数据库的概念• 所有表在同一命名空间中• 数据表创建与RDBMS不同• 不需要声明具体的列、类型、关系 • 没有外键的约束• 不需要提供数据库命名空间表名 列簇名其他管理操作罗列HBase所有表获取数据表的详细信息禁用数据表激活数据表删除数据表中所有行删除数据表HBase数据访问• 访问HBase数据的方式主要有3类 • Java A PI• 访问HBase最推荐的方法• Non-­‐Java编程语言• Thrie接口• REST接口• HBase S hell• 用于小型的自主查询,测试用途为主HBase连接• 所有的访问需要通过类HTableInterface连接HBase数据表 • HTableInterface提供了所有数据操作• 代码示例字节数组• HBase存储的数据是字节数组byte[]• Java A PI的参数与返回值都是字节数组• HBase提供了一个工具类Bytes用于将各种常用类型转换为字节数组• 命令格式• 示例数据读取Get – H Base S hell数据读取Get – J ava A PI数据扫描Scan – H Base S hell • 命令格式• 示例数据扫描Scan – J ava A PI• 命令格式• 示例数据修改Put – H Base S hell数据修改Put – J ava A PI数据删除Delete – H Base S hell • 命令格式数据删除Delete – J ava A PI目录• HBase简介• HBase数据访问接口 • HBase架构• HBase设计讨论 • 总结HBase集群部署主要的后台进程• NameNode• 存储HDFS的元数据• DataNode• 存储HDFS的数据块• Master• 监控集群中的RegionServer• 提供HBase元数据处理的接口 • RegionServer• 存储、管理数据表region • Zookeeper• 维护HBase配置信息Region• HBase中数据表的分片叫作region• Region通过起始行键与结束行键定义分片的内容• Region运行在RegionServer上数据表类型• 用户表• 通过API或者Shell创建的数据表• 前面提到的操作都是针对这类表的 • 系统表• 仅被HBase访问的特殊表• 用于记录RegionServer以及region的位置 • 系统表只有2个: -­‐ROOT-­‐与.META.数据定位• 第一个查询• 客户端 => Z ookeeper• 查询-­‐ROOT-­‐的位置• 第二个查询• 客户端 => -­‐ROOT-­‐ (记录.META.的位置, 从来不分裂) • 查询.META.的位置• 第三个查询• 客户端 => .META. (实际系统中, 一般不分裂)• 定位region、查询region的位置• 第四个查询• 客户端 => r egion• 读取数据数据查询流程HBase存储• HBase使用HDFS存储所有的数据表• Region中不同的列簇都使用”Store”抽象表示 • Store文件,存储列簇的实际数据• Store文件采用HBase特殊文件格式HFileRegionServer运行在一个Slave节点上数据表被切分为多个region,每个region通过起始行键与结束行键标识Region中,每个列簇都对应到一个抽象Store每个Store包含一组存储在HDFS上的Store 文件,实际存储列簇的数据内存Store缓存HBase 的更新,用于提高写性能HBase写操作(1)客户端向RegionServer发送写数据的请求。

相关文档
最新文档