阿里HBase在搜索领域的实践与优化

版权申诉
0 下载量 43 浏览量 更新于2024-07-03 收藏 2.76MB PDF 举报
"本次分享主要围绕阿里HBase在搜索领域的设计与实践展开,涵盖了HBase的升级历程、架构特点、应用场景、改进措施以及扩展项目。文档共有28页,涉及的内容包括Overview、Improvements、Maintenance、Extensional Projects和Q&A环节。" 在大数据领域,Hadoop是一个关键的分布式计算框架,而HBase是建立在其上的一个非关系型分布式数据库(NoSQL),特别适合处理和存储大规模结构化数据。阿里HBase在搜索领域的应用充分展示了其在大数据处理中的价值。 首先,文档回顾了HBase的升级历史,从2010年的0.20.5版本,经过2012年的0.94.5和2013年的0.92.1、0.94.10,直到计划升级到0.98.X,这一过程反映了HBase功能的不断优化和完善。 在Overview部分,强调了HBase与YARN(Yet Another Resource Negotiator)、HDFS(Hadoop Distributed File System)的协同工作,以及应对大量随机读取操作的能力。此外,还支持多种客户端接口,如Java API、MapReduce Job、iStream和Thrift等,这使得HBase在各种场景下都能灵活应用。 HBase的改进部分提到了Increment Coprocessor,这是一个增量触发机制,用于同步传输应用的实时消息,这对于实时搜索至关重要。其他辅助Coprocessors如Compare、Trace和Copy则提供了更丰富的数据处理能力,比如条件匹配、列的动态管理以及数据复制。这些 Coprocessors 提高了HBase的灵活性和功能性。 ThriftServer的改进包括API的优化、Scanner的自动释放以及向Ganglia添加监控指标,这些增强了服务性能和运维能力。同时,ThriftServer也支持C/C++和Python等多语言客户端,拓宽了HBase的使用范围。 Extensional Projects部分可能涉及了HBase与其他系统的集成或扩展开发,这部分未给出详细内容,但通常包括对新功能的探索和对现有功能的增强。 最后,Q&A环节通常会解答参与者关于HBase在搜索领域应用的具体问题,提供更深入的洞见和技术指导。 这份分享揭示了阿里HBase在搜索领域如何通过持续优化和扩展,来满足大规模数据处理和实时查询的需求,对于理解HBase在实际业务中的应用具有重要参考价值。

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 上传

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 上传