网易视频云:HBase最佳实践-内存规划.docx

网易视频云:HBase最佳实践-内存规划.docx

ID:62004779

大小:156.73 KB

页数:7页

时间:2021-04-10

网易视频云:HBase最佳实践-内存规划.docx_第1页
网易视频云:HBase最佳实践-内存规划.docx_第2页
网易视频云:HBase最佳实践-内存规划.docx_第3页
网易视频云:HBase最佳实践-内存规划.docx_第4页
网易视频云:HBase最佳实践-内存规划.docx_第5页
资源描述:

《网易视频云:HBase最佳实践-内存规划.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、文档网易视频云:HBase最佳实践-内存规划网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的PASS服务。在线教育、远程医疗、娱乐秀场、在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台。现在,网易视频云与大家分享一下HBase最佳实践-内存规划.线上HBase集群应该如何进行参数配置?这其实是很多HBase初学者在实践环节都可能会遇到的问题,有些人会选择默认配置,有些人会选择其他公司的推荐配置;诚然,这样的参数配置在大多数情况下都能正常工作,但性

2、能却未必最佳、资源未必都能被合理利用。本文结合笔者的实践经验,针对不同应用场景,对多种工作模式下的参数进行详细说明,并结合相关示例对集群规划中最核心模块-内存规划进行介绍。一方面希望读者能够了解HBase内存相关知识细节,另一方面能够将这些知识应用于实践、不断对集群进行优化。HBase中内存规划直接涉及读缓存BlockCache、写缓存MemStore,影响系统内存利用率、IO利用率等资源以及读写性能等,重要性不言而喻。主要配置也是针对BlockCache和MemStore进行,然而针对不同业务类型(简单说来主要包括读多写少型和写多读少型),内存的相关配置却完全不同。再者

3、,对于读缓存BlockCache,线上一般会有两种工作模式:LRUBlockCache和BucketCache,不同工作模式下的相关配置也不尽相同。为了比较完整的说明不同应用场景以及不同缓存工作模式的内存规划,下文会分分别介绍两个案列:读多写少型+BucketCache,写多读少型+LRUBlockCache。需要说明的是,业务类型和读缓存工作模式之间没有任何直接的关联。业务到底使用BucketCache还是使用LRUBlockCache,只和分配给RegionServer的内存大小有关。一般而言,如果HBASE_HEAPSIZE>20G,选择BucketCache,否则

4、选择LRUBlockCache(参考hortonworks文档),理论依据可以参考这里。案例一:写多读少型+LRUBlockCache内存分布图在详细说明具体的容量规划前,首先需要明确LRUBlockCache模式下的内存分布图,如下图所示:7/7文档图中分配给RegionServer进程的内存就是JVM内存,主要分为三部分:LRUBlockCache,用于读缓存;MemStore,用于写缓存;Other,用于RS运行所必须的其他对象;内存规划思路了解了BucketCache模式下的内存分布图之后,我们具体来分析如何规划内存,首先列出来基本条件:a. 整个物理机内存:96

5、Gb. 业务负载分布:30%读,70%写接下来将问题一步一步分解,从上至下按照逻辑对内存进行规划:(1)系统内存基础上如何规划RS内存?这个问题需要根据自身服务器情况决定,一般情况下,在不影响其他服务的情况下,越大越好。我们目前设置为64G,为系统内存的2/3。(2)如何设置LRUBlockCache、MemStore?确定RegionServer总内存之后,接下来分别规划LRUBlockCahce和MemStore的总内存。在此需要考虑两点:在写多读少的业务场景下,写缓存显然应该分配更多内存,读缓存相对分配更少;HBase在此处有个硬规定:LRUBlockCache+M

6、emStore<80%*JVM_HEAP,否则RS无法启动。推荐内存规划:MemStore=45%*JVM_HEAP=64G*45%=28.8G,LRUBlockCache=30%*JVM_HEAP=64G*30%=19.2G;默认情况下Memstore为40%*JVM_HEAP,而LRUBlockCache为25%*JVM_HEAP7/7文档案例二:读多写少型+BucketCache内存分布图与LRUBlockCache模式相比,BucketCache模式下的内存分布图会更加复杂,如下图所示:7/7文档~如图,整个RegionServer内存(Java进程内存)分为两部

7、分:JVM内存和堆外内存。其中JVM内存中LRUBlockCache和堆外内存BucketCache一起构成了读缓存binedBlockCache,用于缓存读到的Block数据,其中LRUBlockCache用于缓存元数据Block,BucketCache用于缓存实际用户数据Block;MemStore用于写流程,缓存用户写入KeyValue数据;还有部分用于RegionServer正常运行所必须的内存;内存规划思路和案例一相同,本案例中物理机内存也是96G,不过业务类型为读多写少:70%读+30%写因为BucketCache

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。