《HBase权威指南》基于hbase1.0以前,重点第1,8,11章
一个region只能被一台region服务器拥有;
一台region服务器可以有多个region;
(region服务器即region server;)
(region可以合并,也可以拆分;)
region的划分按照rowkey横向划分;
不同region的rowkey不同,如A-C,C-I,I-Z这种;
hbase region能否按列拆分?如果不能,那和RDBMS比,有什么优势呢?
每个region的最佳大小是1G~2G?
每个region服务器最合适的region数量是10~1000?
(具体还得取决于服务器硬件的处理能力?)
region拆分非常快,接近瞬间,因为拆分后仍然读取原文件;
region拆分和合并更详细的过程?
region能自动移动到别的服务器?
hbase的region和hdfs的block什么关系?
hdfs的块是HFile默认块的1024倍!
Hmaster只提供全局region负载均衡、集群管理和元数据管理,不提供具体的数据服务,是轻量级服务器;
(将繁忙服务器的region移动到负载较轻的服务器;)
客户端直接与region server通信?
hbase如何存图片和小视频?
hbase是转化为mapreduce任务执行的?
hbase HA机制:
HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行。
https://www.cnblogs.com/captainlucky/p/4710642.html
hbase过滤器包括:Filter、FliterList和自定义Filter;
hbase协处理器主要分为observer和endpoint,前者类似RDBMS的触发器,后者类似存储过程;
(hbase协处理器允许用户在region server上运行自己的代码;)
(协处理器的加载可以在配置文件指定,也可以从表描述符指定加载,其中配置文件最先被执行;)
(observer常见的有RegionObserver接口,即处理region服务器上的回调函数,具体方法有preOpen、postOpen、preGet、postGet等方法;)
(还有一个MasterObserver接口,即处理master服务器上的回调函数,具体方法有preCreateTable、preEnableTable和preStopMaster等;)
(一般可以用协处理器实现二级索引;)
hive和hbase怎么关联?关联起来有什么好处?
(Pig也能和hbase关联,即通过pig访问hbase;)
hbase的数据结构是LSM树;
(RDBMS的数据结构是B树和B+树;)
(LSM树可以合并和拆分;)
(LSM树和B树的对比!)
#########hbase调优#########
jvm、gc调优;
RAID和磁盘;
读性能和写性能;
优化拆分与合并;
负载均衡;
使用批量导入技术;
关闭WAL,提高吞吐量;(不安全)
启用数据压缩;
增加region大小(hbase.hregion.max.filesize增大region分裂的阈值);
region预分区;
热点region(当变成热点region后,手动拆分大的region并分散到不同服务器;)
column family不要太多2~3、关闭自动flush或HTable.setAutoFlush(false)、
hbase.regionserver.handler.count增加工作线程数、hfile.block.cache.size增大缓存、提高读性能。
hbase.regionserver.checksum.verify关闭校验?hbase.regionserver.maxlogs控制WAL文件flush的频率
zookeeper.session.timeout连接超时时间、hdfs的调优、
hbase.snapshot.enabled关闭快照、合理的设计rowkey、开启bloomfilter
对于hbase调优(或其他调优),如果你能总结出通用的步骤和规律,才能说你真的懂;
否则这种能力、经验无法移植,就只对你自己有用,就变成一种艺术了,而不是技术;
如果能把性能表示为各个参数的函数,用严谨的公式以及可视化的方式表现出来,就更好了;