`
duming115
  • 浏览: 114416 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HMaster -- ServerManager

阅读更多
HMaster -- ServerManager

1. 在HMaster的构造方法中创建.

2. 作用
  a. serversToServerInfo -- ConcurrentHashMap<String, HServerInfo>(),保存RegionServer的信息,server names to server info,
  b. deadServers -- Collections.synchronizedSet(new HashSet<String>()),Set of known dead servers.这些server可能只是因为网络故障引起的,服务器并没有dead.
  c. serversToLoad -- ConcurrentHashMap<String, HServerLoad>() ,每个Region Server上的负载信息.
  d. ServerMonitor -- 定时扫描RegionServer的状态,打印现在服务的region server的数量及deadServers信息.
  e. OldLogsCleaner -- 定时清理/hbase/.oldlogs目录下的日志。
  f. 对每一个加入到serversToServerInfo中的region server,都会在其对于的Zookeeper锁上(路径为/hbase/rs/1285666002331,其中1285666002331为region server启动时的时间戳,数据信息为HServerInfo.ServerAddress 的toString()--192.168.1.23:60020)注册一个ServerExpirer (implements Watcher),只监听EventType.NodeDeleted事件,处理节点因为故障使得其与Zookeeper的连接Session expired,更新完ServerManager保存的对应表后,向this.master.getRegionServerOperationQueue().put(new ProcessServerShutdown(master, info));提交请求.
  g. HMaster对HRegionServer之间定期交流的信息(heartbeat)也由类的方法处理(这里以后补充)
 
3. 内部类及相关类
  3.1 ServerMonitor extends Chore ,是一个线程服务,以daemon模式运行
    定时运行(通过Sleeper.sleep(final long startTime)来挂起特定时间,具体由sleepLock.wait(waitTime);来实现,不会占用锁),时间间隔由配置 hbase.master.meta.thread.rescanfrequency 指定,默认为60秒.
    只是输出平均regionLoad,及现在服务的server,和deadServer(可能是因为网络原因中断的server),这也是HMaster的log日志中每60秒输出的信息.
    2010-09-30 15:12:54,508 INFO org.apache.hadoop.hbase.master.ServerManager: 4 region servers, 0 dead, average load 2.5
    这里的功能是不是太简单了。
   
  3.2 OldLogsCleaner extends Chore ,以daemon模式运行
    旧的HLog的清理者,定时(频率与ServerMonitor的配置参数一样)扫描/hbase/.oldlogs目录下的文件,通过LogCleanerDelegate的boolean isLogDeletable(Path filePath)来判断文件是不是可以清除,具体的实现由"hbase.master.logcleanerplugin.impl"来定义,默认为TimeToLiveLogCleaner,具体实现为取每个HLog文件名中的最后的时间戳,与当前时间对比,如果超出了保留时间ttl("hbase.master.logcleaner.ttl", 600000),则认为可以删除
    OldLogsCleaner 删除的逻辑为
    条件1.目录下的文件如果名称由HLog.validateHLogFilename(String filename)判断,符合格式(".*\\.\\d*"),并且LogCleanerDelegate判断为可删除,由文件被删除.
    不符合条件1的文件将全部被删除.
   
  3.3 HServerInfo 类
    /**
     * HServerInfo is meta info about an {@link HRegionServer}.  It is the token
     * by which a master distingushes a particular regionserver from the rest.
     * It holds hostname, ports, regionserver startcode, and load.  Each server has
     * a <code>servername</code> where servername is made up of a concatenation of
     * hostname, port, and regionserver startcode.  This servername is used in
     * various places identifying this regionserver.  Its even used as part of
     * a pathname in the filesystem.  As part of the initialization,
     * master will pass the regionserver the address that it knows this regionserver
     * by.  In subsequent communications, the regionserver will pass a HServerInfo
     * with the master-supplied address.
     */
     HServerInfo是HRegionServer的唯一标识信息,HMaster用它来区分不同的HRegionServer,servername就是那个唯一标识,它由hostname, port, and regionserver startcode组成,中间用,分隔开.
     其中a.hostname这里是/etc/hosts中设置的主机名称,例如datanode-1,这样使得如果修改hosts文件,将会使HMaster有非常大的变动,看.logs目录下的HLog文件也是以servername来创建的.
     b.port端口号,默认为60020
     c.startcode 为HRegionServer启动时的时间戳.
     HServerInfo由HRegionServer启动时创建,并通过RPC提交给HMaster.
  3.4 HRegionInfo
    HRegion information.
   * Contains HRegion id, start and end keys, a reference to this
   * HRegions' table descriptor, etc.
     New region name format:
   * &lt;tablename>,,&lt;startkey>,&lt;regionIdTimestamp>.&lt;encodedName>.
   * where,
   * &lt;encodedName> is a hex version of the MD5 hash of
   * &lt;tablename>,&lt;startkey>,&lt;regionIdTimestamp>
分享到:
评论

相关推荐

    hbase所需要的包

    - `hbase-server.jar`:服务器端组件,包含HMaster和HRegionServer所需的服务。 - `hbase-region-server.jar`:HRegionServer的具体实现。 - `hbase-rest.jar`:提供RESTful API,使得非Java应用也能访问HBase。 - `...

    大数据技术之HBase.docx

    HBase的核心组成部分包括HMaster、HRegionServer、Write-Ahead Logs (WALs)、HFiles、Store、MemStore和Region等。 ##### 1.2.1 HMaster - **监控RegionServer**:跟踪并管理活跃的RegionServer实例。 - **故障...

    AHB总线仲裁器的设计

    - **HMASTER-LOCK**:指示正在进行锁定序列交易的信号。 - **HSPLIT-x**:从设备发出的要求完成SPLIT交易的请求信号,这是AHB总线的一个重要特性,能够防止系统死锁并充分利用总线资源。 #### 四、仲裁过程 1. **...

    HBase安装手册

    - 选择合适的服务器节点,通常需要一个或多个HMaster节点和多个HRegionServer节点。 - 在所有参与HBase集群的节点上创建hbase用户,并确保这些用户之间建立了SSH免密码登录。 #### 三、安装步骤 1. **上传并解压...

    hbase学习课件

    - HMaster 还负责管理 Region Server 的启动和关闭。 - **ZooKeeper**: - ZooKeeper 服务用于协调 HBase 集群中的各种服务。 - 它主要负责选举 HMaster、管理集群状态信息等。 - **HDFS**: - HDFS 作为 HBase ...

    Hbase shell及常用命令

    HBase Shell是一个封装了Java客户端API的JRuby应用软件,在HBase的HMaster主机上通过命令行输入hbase shell,即可进入HBase命令行环境。 HBase创建表(create命令) ------------------------ 在HBase中,基本组成...

    hyperbasetraining内部培训文档

    - 监控Regionserver的状态变更,并通知HMaster。 - 存储Hyperbase的schema和table元数据。 通过以上知识点的梳理,我们可以清晰地了解到Hyperbase作为一种分布式数据库,在大数据领域的应用优势以及其实现机制的...

    Apache Hadoop---HBase.docx

    - **HMaster**: 管理全局的HBase集群,负责HRegion的分配、RegionServer监控、负载均衡和清理垃圾文件。 - **HRegionServer**: 实际处理数据读写请求的节点,可以包含多个HRegion,共享HLog。 - **HRegion**: ...

    Hadoop2.7Hbase1.1.3高可用集群安装与部署.pdf

    文档提到了三种实现 NN 高可用的方式,但最终选择了基于 QJM (Quorum Journal Manager) 的共享日志方案,具体步骤如下: 1. **Active NN** 将日志写入本地以及多个 JournalNode 上。 2. **Standby NN** 定期从 ...

    【No0057】HBase源码解析与开发实战.txt

    - 如果 RegionServer 出现故障,HMaster 会将该节点上的 Region 迁移到其他可用的 RegionServer 上。 3. **Zookeeper** - Zookeeper 是 HBase 集群中的一个协调服务。 - 它主要负责监控 HMaster 的状态,以及为...

    hbase-1.1.5-bin.tar

    7. **Master节点**:HMaster是HBase的主控节点,负责Region的分配、 Region Server的监控以及元数据的维护。 8. **表和列族**:在HBase中,数据以表格形式存储,每个表由一个或多个列族组成。列族是预分配的,而列...

    hbase

    1. **Master节点(HMaster)**:HMaster是HBase集群的管理节点,负责区域服务器的调度、表的管理(创建、删除、分裂等)以及监控区域服务器的状态。当区域服务器出现故障时,HMaster会进行故障恢复,重新分配该...

    Hbase安装指南

    当Region Server出现故障时,HMaster会负责恢复操作。 4. **HRegionServer**:HRegionServer是HBase的主要工作节点,它们直接处理用户的I/O请求,读写数据到HDFS。每个HRegionServer管理多个HRegion,每个HRegion...

    HBase技术介绍.docx

    随着数据量的增长,一个表会被划分成多个Region,每个Region由一个范围(start key, end key]表示,并且会被分配到不同的Region Server上进行管理。 - **-ROOT- Table**: 存储.META.表的位置信息。 - **.META. ...

    HBase的安装与配置

    /home/zookeeper-xxx/bin/./zkServer.sh start ``` 2. **启动HDFS集群** 在HDFS的NameNode上启动HDFS集群。 ```sh /root/hadoop/sbin/./start-dfs.sh ``` 3. **启动HBase** 在HBase的主节点上启动HBase...

    NOSQL-课程复习资料

    - **通信**:与 HMaster 进行管理通信,与 Region Server 进行数据读写。 2. **ZooKeeper**: - **角色**:协调服务,负责选举 HMaster、系统容错等关键任务。 3. **HMaster**: - **地位**:集群中的主控节点...

    hbase-0.98.17-hadoop2-bin.tar.gz

    - 可以通过 `jps` 命令查看是否成功启动了HMaster和HRegionServer进程。 6. **使用HBase shell**: - 打开终端,输入 `hbase shell` 进入HBase命令行界面,可以进行创建表、插入数据、查询等操作。 7. **监控和...

    nosql分布式数据库期末考试题.docx

    - SQL Server 是由微软开发的一种关系数据库管理系统。 - **C、Oracle** - Oracle 数据库也是关系型数据库管理系统,支持SQL标准。 - **D、** - 该选项未给出具体内容,但根据题目要求应为非关系型数据库。正确...

    hbase-2.1.1-bin.tar.gz

    - 启动HBase,执行`start-hbase.sh`,检查`jps`命令确认HMaster和HRegionServer是否正常启动。 5. **使用HBase** - 使用HBase shell,一个交互式的命令行工具,执行增删改查操作。 - 通过Java API或者HBase的...

    集团大数据平台系统配置方案.pdf

    - **HMaster**:在HBase中,HMaster处理Region Server的分配和负载均衡,确保数据处理的高效性。 3. **性能优化** - **硬件选择**:高速SAS硬盘用于系统盘和数据存储,保证读写效率;使用ECC内存减少数据错误;...

Global site tag (gtag.js) - Google Analytics