HBase:大数据时代的高扩展性存储解决方案

需积分: 9 8 下载量 90 浏览量 更新于2024-07-17 收藏 5.11MB DOC 举报
本文档深入探讨了大数据技术中的关键组件——HBase。HBase起源于Google的BigTable论文,是Apache Hadoop项目的一部分,旨在提供高效、可靠的大规模结构化数据存储解决方案。以下是关于HBase的主要知识点: 1. **HBase简介**: - HBase的起源:HBase最初由Google在2006年的BigTable论文中提出,并在同年开始开发。随着2008年北京奥运会的成功举办,HBase逐渐发展成为Hadoop生态系统的一部分。 - 官方网站:HBase的官方网站是<http://hbase.apache.org>,提供最新的项目信息和下载资源。 - 目标和适用场景:HBase特别适合处理大型、高并发的数据,如PB级别的数据,它能在廉价PC服务器上构建起高效的存储集群。 2. **HBase的特点**: - **海量存储**:HBase的设计目标是支持PB级别的海量数据,通过优秀的扩展性,即使在大规模数据下也能实现几十到百毫秒级别的数据检索,极大地提高了数据处理效率。 - **列式存储(列族存储)**:HBase采用列族的方式来组织数据,每个表在创建时需要指定列族,列族下可以包含大量列,这种设计优化了查询性能。 - **极高扩展性**: - **上层处理能力扩展**:通过增加RegionServer(负责数据分片和处理请求的服务器)的数量,HBase可以水平扩展其处理能力,支持更多的Region(数据区域)。 - **存储扩展**:HBase利用Hadoop HDFS作为底层存储系统,使得数据存储可以根据需求动态扩展,确保系统的可靠性。 3. **与Google BigTable的对比**: - 存储系统不同:BigTable使用GFS,而HBase则依赖于HDFS。 - 处理模型:两者都利用MapReduce处理海量数据,但HBase在Hadoop平台上运行。 - 协同服务:BigTable用Chubby,HBase则采用Zookeeper来实现分布式协调。 总结来说,HBase是大数据领域中一个重要的分布式数据库,它通过列式存储、高扩展性和与Hadoop的集成,为大规模、高性能的数据处理提供了强大支持。在实际应用中,了解和掌握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 上传