HBase:高可靠的大数据分布式数据库与模型详解

需积分: 2 0 下载量 97 浏览量 更新于2024-08-04 收藏 49KB MD 举报
HBase.md 是一篇关于HBase的详细介绍,HBase是一款重要的分布式、可扩展的NoSQL数据库,它基于Google的BigTable论文构建,专为大规模、非结构化或半结构化数据设计。HBase的核心目标是处理包含数十亿行和数百万列的大数据表,通过水平扩展在廉价的计算机集群上提供高效服务。 文章首先介绍了HBase的基本概念。作为Hadoop生态系统的一部分,HBase数据架构与传统的关系型数据库有显著区别。在HBase中,数据存储在命名空间(类似数据库)下,表分为列族,每个表由多个列族组成。每一行在逻辑上是由行键(rowkey)唯一标识的,尽管在物理存储中行数据可能分布在不同的Region中。Rowkey是确定数据所属行的关键,而Region则是数据分布的基本单元,一个表通常对应一个Region。 HBase的数据模型分为逻辑结构和物理结构两部分。逻辑结构展示了HBase如何组织数据,包括列族、列以及行键的概念,而物理结构则显示了数据在磁盘上的实际存储方式。例如,列族与Store相对应,一个Region可以包含多个Store,每个Store负责存储特定列族的数据。 数据模型中的重要概念包括: 1. `Namespace`:命名空间,类似于数据库层级,HBase默认有两个:default和HBase。 2. `Column Family`:列族,是数据的逻辑分组,列族下的数据共享相同的列族名称前缀。 3. `Column`:列,每个数据单元由列族名和列名组成。 4. `Row Key`:行键,用于唯一标识一行数据,是HBase中的核心索引。 5. `Region`:数据的物理划分,一个大表被划分为多个Region,提高数据访问效率。 6. `Store`:存储引擎,每个Region有多个Store,存储对应列族的数据。 HBase的设计强调灵活性和高可用性,适合于大数据量、实时读写的场景,比如日志收集、社交网络分析等。理解HBase的数据模型和工作原理对于在实际项目中有效利用这一工具至关重要,特别是在处理海量数据和实现分布式系统时。

org.apache.hadoop.hbase.DoNotRetryIOException: Unable to load configured region split policy 'org.apache.phoenix.schema.MetaDataSplitPolicy' for table 'SYSTEM.CATALOG' Set hbase.table.sanity.checks to false at conf or table descriptor if you want to bypass sanity checks at org.apache.hadoop.hbase.util.TableDescriptorChecker.warnOrThrowExceptionForFailure(TableDescriptorChecker.java:296) at org.apache.hadoop.hbase.util.TableDescriptorChecker.sanityCheck(TableDescriptorChecker.java:109) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2025) at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:657) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318) org.apache.hadoop.hbase.DoNotRetryIOException: Unable to load configured region split policy 'org.apache.phoenix.schema.MetaDataSplitPolicy' for table 'SYSTEM.CATALOG' Set hbase.table.sanity.checks to false at conf or table descriptor if you want to bypass sanity checks at org.apache.hadoop.hbase.util.TableDescriptorChecker.warnOrThrowExceptionForFailure(TableDescriptorChecker.java:296) at org.apache.hadoop.hbase.util.TableDescriptorChecker.sanityCheck(TableDescriptorChecker.java:109) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2025) at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:657) at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338) at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)

2023-07-14 上传

23/07/23 16:19:48 ERROR AsyncProcess: Failed to get region location org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.util.ByteStringer at org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:241) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:214) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:364) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:338) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:137) at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.hadoop.hbase.util.ByteStringer at org.apache.hadoop.hbase.protobuf.RequestConverter.buildRegionSpecifier(RequestConverter.java:1041) at org.apache.hadoop.hbase.protobuf.RequestConverter.buildScanRequest(RequestConverter.java:492) at org.apache.hadoop.hbase.client.ClientSmallReversedScanner$SmallReversedScannerCallable.call(ClientSmallReversedScanner.java:291) at org.apache.hadoop.hbase.client.ClientSmallReversedScanner$SmallReversedScannerCallable.call(ClientSmallReversedScanner.java:276) at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:212) ... 7 more

2023-07-24 上传