1.Configuration描述
HBase采用hadoop中的Configuration对象来加载配置文件信息
2.HMaster作用
a.监控集群中所有的regionserver
b.对元数据进行管理
c.通常情况下,HMaster和NameNode在一个节点上
d.管理regionserver的故障转移和region分区
表级操作:Table(createTable,modifyTable,removeTable,enable,disable)
列簇操作:ColumnFamily(addColumn,modifyColumn,removeColumn)
分区操作:Region(move,assign,unassign)
负载均衡:LoadBalancer
3.RegionServer作用
a.负责服务和管理region
b.通常情况下,HRegionServer和DataNode在一个节点上
c.MemStore刷盘操作
d.WAL(Write-ahead-log);写前日志
数据操作:Data(get,put,delete,next,etc.)
分区操作:Region(splitRegion,compactRegion,etc.)
e.minor和major
4.MemStore说明
a.每一个region可能存在一个或多个MemStore,每个MemStore对应着当前表的当前区域的一个列簇
b.如果达到刷盘条件,写入到磁盘中:StoreFile(HFile)
刷盘条件:
1.手动操作,执行flush();
2.达到阈值
-->编辑在内存中的最长时间,默认为1小时
-->memstore的大小超过128M,进行刷盘
3.全局内存限制
<property>
<name>hbase.regionserver.global.memstore.size</name>
<value></value>
<description>
在刷新之前,regionserver中所有memstore的最大大小
更新被阻塞,刷新被强制。默认设置为堆的40%(0.4)。
</description>
</property>
<property>
<name>hbase.regionserver.global.memstore.size.lower.limit</name>
<value></value>
<description>
强制刷新之前,regionserver中所有memstore的最大大小。
默认设置为95%的hbase.regionserver.global.memstore。
</description>
</property>
5.ColumnFamily(列簇)个数说明
要求:创建表时,尽可能降低列簇的个数,最好为1;如果超过2或3,Hbase集群性能受到影响。
6.Split阈值
<property>
<name>hbase.hregion.max.filesize</name>
<value>10737418240</value>
<description>
最大HStoreFile大小。如果列族的HStoreFiles扩展到超过这个值(1G)时,宿主HRegion被一分为二。</description>
</property>
7.合并相关参数
1.minor(轻量级合并)
<property>
<name>hbase.hstore.compaction.max</name>
<value>10</value>
<description>按轻量级合并最大压缩HStoreFiles数。</description>
</property>
<property>
<name>hbase.hstore.compactionThreshold</name>
<value>3</value>
<description>
If more than this number of HStoreFiles in any one HStore
(one HStoreFile is written per flush of memstore) then a compaction
is run to rewrite all HStoreFiles files as one. Larger numbers
put off compaction but when it runs, it takes longer to complete.
</description>
</property>