设为首页 加入收藏

TOP

HBase1.0.0版源码分析之HMaster启动代码分析(2)(二)
2015-07-24 11:10:45 来源: 作者: 【 】 浏览:3
Tags:HBase1.0.0 源码 分析 HMaster 启动 代码
ngInputFilter) 2015-03-23 13:40:49,423 INFO [main] http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.hbase.http.lib.StaticUserWebFilter$StaticUserFilter) to context master 2015-03-23 13:40:49,425 INFO [main] http.HttpServer: Added filter static_user_filter (class=org.apache.hadoop.hbase.http.lib.StaticUserWebFilter$StaticUserFilter) to context static 2015-03-23 13:40:49,812 INFO [main] http.HttpServer: Jetty bound to port 16030
(3)激活Master,startActiveMasterManager(infoPort);
这里面有几个子步骤,在startActiveMasterManager中首先在Zookeeper中添加一个backupZNode,等到变成activeMaster 之后显式删除该节点
master.ActiveMasterManager: Deleting ZNode for /hbase/backup-masters/xiaoyi-PC,52777,1427089138770 from backup master directory
激活之后,调用finishActiveMasterInitialization(status);完成Master相应的工作线程的启动过程

?

(4)创建集群链接

setupClusterConnection();

(5)初始化Zookeeper集群的trackers
initializeZKBasedSystemTrackers();

?

(6)启动各种工作服务线程

startServiceThreads();
// Start the executor service pools
this.service.startExecutorService(ExecutorType.MASTER_OPEN_REGION,
        conf.getInt("hbase.master.executor.openregion.threads", 5));
this.service.startExecutorService(ExecutorType.MASTER_CLOSE_REGION,
        conf.getInt("hbase.master.executor.closeregion.threads", 5));
this.service.startExecutorService(ExecutorType.MASTER_SERVER_OPERATIONS,
        conf.getInt("hbase.master.executor.serverops.threads", 5));
this.service.startExecutorService(ExecutorType.MASTER_META_SERVER_OPERATIONS,
        conf.getInt("hbase.master.executor.serverops.threads", 5));
this.service.startExecutorService(ExecutorType.M_LOG_REPLAY_OPS,
        conf.getInt("hbase.master.executor.logreplayops.threads", 10));
等待RegionServer的实例加入其管理集群
this.serverManager.waitForRegionServers(status);
activeMasterManager] master.ServerManager: Waiting for region servers count to settle;

当配置数量的regionservers都加入集群之后集群的初始化工作就完成了,
接下来的一个重量级组件就是LoadBalancer,其主要负责regions在HRegions之间的分配
检查Hbase的meta是否已经分配,
最后启动几个后台线程进行相应的监控处理,至此HMaster的初始化工作就完全完成了
// Start balancer and meta catalog janitor after meta and regions have
// been assigned.
status.setStatus("Starting balancer and catalog janitor");
this.clusterStatusChore = new ClusterStatusChore(this, balancer);
Threads.setDaemonThreadRunning(clusterStatusChore.getThread());
this.balancerChore = new BalancerChore(this);
Threads.setDaemonThreadRunning(balancerChore.getThread());
this.catalogJanitorChore = new CatalogJanitor(this, this);
Threads.setDaemonThreadRunning(catalogJanitorChore.getThread());


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇EntityFramework实体框架的形成之.. 下一篇数学之路-sas备忘(9)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·数据库:推荐几款 Re (2025-12-25 12:17:11)
·如何最简单、通俗地 (2025-12-25 12:17:09)
·什么是Redis?为什么 (2025-12-25 12:17:06)
·对于一个想入坑Linux (2025-12-25 11:49:07)
·Linux 怎么读? (2025-12-25 11:49:04)