360大数据HBase集群深度优化与资源管理策略

版权申诉
0 下载量 14 浏览量 更新于2024-07-03 收藏 1.51MB PDF 举报
本资源是一份关于大数据技术特别是Hadoop技术的分享文档,重点关注了360公司的大规模HBase集群的改进策略。文档涵盖了43页的内容,主要讨论了以下几个关键知识点: 1. **现状分析**: - 集群规模宏大,拥有4500台机器,每台可容纳最多1000个Region,总共管理着60万个Region,涉及的数据量达到33万亿个键值对,存储量超过120PB。集群运行在HBase 0.89-fb版本上,服务于搜索、安全、监控等多个业务领域,包括网页库、链接库和快照库。 2. **问题与挑战**: - 现状下,Metaregion(元数据区域)与UserRegion(用户数据区域)共享Region服务器(RS),这导致资源竞争,特别是网络和IO资源,以及RPC处理和数据压缩队列等软件资源的使用效率降低。此外,随着集群规模扩大,启动时间和Region打开过程成为性能瓶颈,尤其是在搜索集群中,40万个Region的打开占据了大部分启动时间。 3. **改进措施**: - 为了解决资源竞争和性能问题,提出与属MetaServer的设计,将Metaregion从UserRegion中分离出来,为其专门保留资源,从而保障Metaregion的性能。 - 实施启劢优化,减少集群启动时的耗时,尤其是针对Region打开速度进行优化。 - 关于Scan操作的改进,可能是为了提高查询性能。 - 支持多网卡,利用硬件资源提升数据传输速度。 - 引入保护模式,可能是为了增强系统的稳定性,防止故障时数据丢失或服务中断。 4. **建议部分**: - 文档还可能包含针对这些改进措施的具体实施建议,比如调整配置参数、监控系统性能指标、定期维护优化等,以确保在超大规模环境下HBase集群的高效稳定运行。 总结来说,这份文档提供了一种解决大规模HBase集群面临问题的方法论,强调了资源管理和性能优化的重要性,对于理解和优化大型数据处理系统具有很高的参考价值。通过深入理解并应用这些改进措施,可以显著提升Hadoop生态系统的整体效能。

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