阿里巴巴HBase优化与实战

需积分: 5 0 下载量 81 浏览量 更新于2024-07-17 收藏 1.35MB PDF 举报
“HBase在阿里巴巴的优化及实践” 阿里巴巴作为全球领先的互联网公司,对HBase这一分布式NoSQL数据库进行了深入的优化与实践。HBase在阿里巴巴的应用场景广泛,包括物流、物联网、搜索等多个业务领域,处理着每日超过1亿次的事务处理(TPS)以及PB级别的数据存储。特别是在双11这样的大型活动中,HBase展现出了高吞吐量(1GB/s+)、低延迟查询的能力,满足了实时交易和监控的需求。 1. **典型应用场景** - **物流**:用于跟踪和管理大量的物流信息。 - **物联网(IoT)**:处理来自各种设备的实时数据。 - **搜索**:支持快速的数据索引和检索。 - **日志记录**:存储和分析各类业务的日志数据。 - **聊天**:处理用户间的即时消息。 - **监控**:收集和分析系统性能数据。 - **交易**:处理在线交易活动。 2. **运行架构** - **范围数据复制**(Rangedatacopy):通过数据分区和复制,提高数据可用性和读写性能。 - **双重服务**(DualService):可能是为了实现故障切换和高可用性,确保服务连续性。 3. **SQL支持** - **性能和功能改进**:HBase可能已经集成了SQL查询能力,以方便非Java开发人员操作,同时优化了查询性能。 4. **风险管理系统在蚂蚁金服的应用** - **实时导入**:快速处理实时风险事件数据。 - **实时查询**:提供低延迟的风险评估。 - **增量导出**:持续将更新的数据发送到离线计算系统。 - **每日结果导入**:将离线计算的结果整合到HBase中。 - **数据过期策略**:基于时间戳(TTL)、版本控制或低价值列进行数据清理,以保持数据的新鲜度和有效存储。 5. **部署架构** - **HDFS**:HBase建立在Hadoop的分布式文件系统之上,确保大规模数据存储。 - **异步复制**:通过异步方式复制数据,保证数据一致性。 - **两副本策略**(2replicas):提供数据冗余,防止单点故障。 - **范围数据复制**和**双服务**是进一步提升性能和容错性的关键设计。 阿里巴巴通过深度定制和优化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 上传