构建大数据生态:HBase与CloudTable服务实践

需积分: 10 0 下载量 140 浏览量 更新于2024-07-17 收藏 1.17MB PDF 举报
"使用HBase构建大数据生态.pdf" 在当今的大数据时代,HBase作为一款分布式、面向列的NoSQL数据库,被广泛应用于构建高效、可扩展的数据存储系统。华为的CloudTable服务,即基于HBase的云服务,旨在为企业提供更强大的数据处理能力。本文件主要介绍了华为如何利用HBase构建其云计算生态环境,并提出了一种轻量级的HBase客户端——CTBase,以及Tagram,一个基于HBase的分布式位图索引实现。 1. CTBase(CloudTable Base)设计动机: 在大多数客户场景中,数据结构化程度较高,因此对HBase的二次索引有基本需求。随着新应用的开发,需要对HBase的二次索引功能进行扩展。此外,简单的跨表连接查询在实际应用中很常见,某些情况下还要求全文索引功能。CTBase正是为了解决这些问题而设计。 2. CTBase特性: - **模式化表**:引入了模式的概念,使得数据管理更为规范。 - **全局二级索引**:提供全库范围的索引,增强数据检索效率。 - **集群表**:支持简单跨表连接查询,简化了复杂查询操作。 - **在线模式变更**:允许用户在不中断服务的情况下动态修改表结构。 - **基于JSON的查询DSL**:提供一种简洁的查询语法,便于开发者使用。 3. **模式化表**: 用户表(UserTable)是一个概念性的用户数据存储表,每列代表服务数据的一个属性。主键是表的行键,表示最可能的搜索场景。二级索引则将索引信息存储到主键中,以便快速查找。HBase的列(Qualifier)则表示每个键值对。 4. **Tagram**: Tagram是基于HBase实现的分布式位图索引,它优化了大规模数据集上的布尔查询性能。位图索引特别适用于处理存在大量分类或标记的数据,能够有效地进行成员资格检查和并集、交集、差集等操作。 5. **CloudTable服务**: 华为的CloudTable服务将HBase的优势带入云环境,提供了高可用性、高扩展性和低成本的数据存储解决方案。通过将HBase与云计算相结合,企业可以轻松管理和处理海量数据,同时享受到云计算带来的灵活部署和弹性伸缩优势。 HBase在华为大数据生态中的应用,不仅体现在基础的存储功能,更在于其对结构化数据的处理优化,如CTBase的特性所示,以及对特定查询需求的满足,如Tagram的位图索引技术。这使得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 上传