codecamp

HBase架构:Master

Master

HMaster是主服务器(Master Server)的实现。主服务器负责监视群集中的所有RegionServer实例,并且是所有元数据更改的接口。在分布式集群中,Master通常在NameNode上运行。

启动行为

如果在多主机(multi-Master)环境中运行,所有Master竞争运行集群。如果活动Master在ZooKeeper中失去租约(或Master关闭),则剩下的Master将争相接管角色。

运行时影响

当Master发生故障时,一个常见的dist-list问题涉及一个HBase集群会发生什么。由于HBase客户端直接与RegionServer对话,因此群集仍可以“稳定状态”运行。此外,每个目录表(Catalog Tables),hbase:meta作为HBase的表存在,而不是在Master中不存在。但是,Master控制关键功能,如RegionServer故障切换和完成区域分割。因此,虽然群集仍可以在没有Master的情况下运行很短的时间,但应尽快重新启动Master形状。

接口

HMasterInterface公开的方法主要是面向元数据(metadata-oriented)的方法:

  • 表(createTable,modifyTable,removeTable,enable,disable)
  • ColumnFamily(addColumn,modifyColumn,removeColumn)
  • 区域(move,assign,unassign),例如,调用该Admin方法disableTable时,它由Master服务器提供服务。

流程

Master运行几个后台线程:

负载平衡器

周期性地,当没有转换区域时,负载均衡器将运行并移动区域以平衡群集的负载。

有关区域分配的更多信息,将在后续的章节中介绍。

CatalogJanitor

定期检查并清理hbase:meta表格。

KeyValue元数据
RegionServer接口、进程与协处理器
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

HBase快速入门

HBase批量加载

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }