大数据全系列 教程
1869个小节阅读:467.4k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
问题1:从HBase应用程序设计与开发的角度,总结几种常用的读表操作相关的优化方案?
参考答案:
在单条查和批量查都可以用时优先选择批量读。
通过调用HTable.get(Get)方法可以根据一个指定的row key获取一行记录,同样HBase提供了另一个方法:通过调用HTable.get(List
scan时指定需要的列族与列描述符,可以减少网络传输数据量,否则默认scan操作会返回整行所有Column Family的数据。
通过scan取完数据后,记得要关闭ResultScanner,否则RegionServer可能会出现问题(对应的Server资源无法释放)。
优化服务器端BlockCache内存占比。
客户端缓存查询结果。
HBase scanner一次从服务端抓取的数据条数,默认情况下一次一条。通过将其设置成一个合理的值,可以减少scan过程中next()的时间开销,代价是scanner需要通过客户端的内存来维持这些被cache的行记录。
有三个地方可以进行配置:
三者的优先级从上到下越来越高。
问题2:简述使用客户端缓存查询结果后的查询流程?
参考答案:
对于频繁查询HBase的应用场景,可以考虑在应用程序中做缓存,当有新的查询请求时,首先在缓存中查找,如果存在则直接返回,不再查询HBase;否则对HBase发起读请求查询,然后在应用程序中将查询结果缓存起来。至于缓存的替换策略,可以考虑LRU(least recently used最近最少使用的)等常用的策略。
client ->通过网络请求->regionserver(memstore|blockcache|storefile)
优化为:
client-> (memcached|redis)->通过网络请求->regionserver(memstore|blockcache)
问题3:简述你对BlockCache的理解有哪些?
参考答案:
有关BlockCache机制,请参考这里:HBase的Block cache,HBase的blockcache机制,<