/ 中存储网

分布式数据库 Hbase 的高可用管理和监控(二)

2014-08-12 09:25:21 来源:中存储网

 图 5. BigInsights Web 管理界面

在 BigInsights Web 管理界面中点击“Cluster Status”页面,可以实现对 HBase, Zookeeper 以及其他模块状态的监控、启停。

“Cluster Status”页面左上方分别列出 BigInsights 集群中所有组件的服务的运行状态。可以看到所有服务目前都处于正常的运行状态中。选择“HBase”,可以查看 HBase 集群的服务信息,如图 8,列出了 HBase 的简要信息,包括 HBase 集群状态 (Start/Stop),HBase Master 节点及进程号,平均 Load 数,HBase 集群中生存的 Region Server 个数,死亡的 Region Server 个数等。

 图 6. HBase 服务状态监控

  图 7. HBase Master 服务状态监控及启停

图 8. HBase Region Servers 服务状态监控及启停

此外,BigInsights 提供了统一的命令行接口对集群的组件进行管理。用户可以方便的使用命令行来检查 HBase 集群使用的健康状态,增加和删除 HBase 节点 , 启动、停止某个服务,或者查询服务的状态等。

检查 HBase 组件的健康状态

您可以 BigInsights 管理节点上通过以下命令来验证 HBase 集群的健康状态:

$/bin/sh $BIGINSIGHTS_HOME/bin/healthcheck.sh hbase

同步 HBase 的配置文件

作为集群管理人员,通常需要修改配置参数来调优 HBase 的集群性能,或者修改相关配置,所有的这些操作都需要修改 HBase 的配置文件,如 hbase-site.xml. regionservers, hbase-env.sh, hadoop-metrics.properties 或者 log4j.properties,BigInsights 集群管理为各组件提供统一的配置文件同步功能,以保证统一之组件在所有节点上配置的一致性。您可以通过以下命令来同步 HBase 配置文件:

1. 您可以在 BigInsights 管理节点的 $BIGINSIGHTS_HOME/hdm/components/hbase/conf/ 目录下更新 HBase 配置文件

2. 在 BigInsights 管理节点上通过运行以下命令同步所有的节点的 HBase 配置文件:

$/bin/sh $BIGINSIGHTS_HOME/bin/syncconfig.sh

hbase 增删 HBase 节点

BigInsights 平台支持增删 HBase 节点的功能。

1. 增加节点

您可以在 BigInsights 管理节点上运行以下命令来增加一个或多个节点到 HBase 集群中:

$/bin/sh $BIGINSIGHTS_HOME/bin/addnode.sh hbase node1 -type=master

$/bin/sh $BIGINSIGHTS_HOME/bin/addnode.sh hbase node1 -type=regionserver

其中 node1 可以是 IP 地址也可以是 hostname.

2. 删除节点

您可以在 BigInsights 管理节点上运行以下命令来从 HBase 集群中删除一个或多个节点,删除 HBase 节点只会删除 HBase 服务,不会删除任何数据。

$/bin/sh $BIGINSIGHTS_HOME/bin/removenode.sh hbase

其中 node1 可以是 IP 地址也可以是 hostname.

启停和查看 HBase 服务

您可以在 BigInsights 管理节点上运行以下命令来启动 HBase 集群服务 :

$/bin/sh $BIGINSIGHTS_HOME/bin/start.sh hbase

您可以在 BigInsights 管理节点上运行以下命令来停止 HBase 集群服务 :

$/bin/sh $BIGINSIGHTS_HOME/bin/stop.sh hbase

查看 HBase 服务:

您可以在 BigInsights 管理节点上运行以下命令来查看 HBase 集群服务状态 :

$/bin/sh $BIGINSIGHTS_HOME/bin/status.sh hbase

HBase Master 多结点高可用支持

我们可以在 HBase 集群中启动多个 Master 节点,其中第一个启动的节点作为活跃 (Active)Master 对外提供服务,而其他的作为备份 (Backup)Master 节点;实际上,HBase 通过 Zookeeper 来保存活跃 Master 节点信息,一旦当前活跃 Master 节点由于硬件故障或者断电等原因失去连接,备份 Master 会通过 Zookeeper 收到该信息,并选举产生新的活跃 Master 提供服务。接下来将详细描述如何通过 BigInsights 启动多个 Master 并进行状态监控。

1. 通过命令行模式添加 / 启动 / 监控 HBase Master

A) 登录 BigInsights 管理节点,查看当前 HBase 集群状态

[biadmin@bdvm070 ~]$ status.sh hbase

[INFO] Progress - Status hbase

[INFO] @bdvm070.svl.ibm.com - hbase-master(active) started, pid 18157

[INFO] @bdvm071.svl.ibm.com - hbase-regionserver started, pid 12072

[INFO] Deployer - hbase service started

[INFO] Progress - 100%

[INFO] DeployManager - Status; SUCCEEDED components: [hbase]; Consumes : 9699ms

B) 添加 bdvm071 为备用 Master 节点

[biadmin@bdvm070 ~]$ addnode.sh hbase bdvm071.svl.ibm.com -type=master

[INFO] DeployManager - Check SSH setup on [bdvm071.svl.ibm.com]

[INFO] @bdvm071.svl.ibm.com - OK, password-less SSH has setup.

...

[INFO] DeployManager - Add hbase nodes; SUCCEEDED components: [hbase]; Consumes : 0ms

C) 启动备用 Master 节点

[biadmin@bdvm070 ~]$ start.sh hbase

[INFO] Progress - Start hbase

[INFO] Deployer - make sure zookeeper service is started before start hbase service

[INFO] @bdvm070.svl.ibm.com - hbase-master(active) already running, pid 18157

[INFO] @bdvm071.svl.ibm.com - hbase-master(backup) started

[INFO] @bdvm071.svl.ibm.com - hbase-regionserver already running, pid 12072

[INFO] Deployer - hbase service started

[INFO] Progress - 100%

[INFO] DeployManager - Start; SUCCEEDED components: [hbase]; Consumes : 14110ms

D) 重新查看 HBase 集群状态

[biadmin@bdvm070 ~]$ status.sh hbase

[INFO] Progress - Status hbase

[INFO] @bdvm070.svl.ibm.com - hbase-master(active) started, pid 18157

[INFO] @bdvm071.svl.ibm.com - hbase-master(backup) started

[INFO] @bdvm071.svl.ibm.com - hbase-regionserver started, pid 12072

[INFO] Deployer - hbase service started

[INFO] Progress - 100%

[INFO] DeployManager - Status; SUCCEEDED components: [hbase]; Consumes : 14382ms

E) 停止当前活跃 Master 节点并查看 HBase 集群状态

[biadmin@bdvm070 ~]$ $HBASE_HOME/bin/hbase-daemon.sh stop master

stopping master.

[biadmin@bdvm070 ~]$ status.sh hbase

[INFO] Progress - Status hbase

[INFO] @bdvm070.svl.ibm.com - hbase-master stopped

[INFO] @bdvm071.svl.ibm.com - hbase-master(active) started, pid 19840

[INFO] @bdvm071.svl.ibm.com - hbase-regionserver started, pid 12072

[INFO] Deployer - hbase service started

[INFO] Progress - 100%

[INFO] DeployManager - Status; SUCCEEDED components: [hbase]; Consumes : 52069ms

通过上述操作我们可以看到,通过命令行可以在 BigInsights 集群中随时添加备份 Master 并进行 Master 的启停 / 监控。另外需要注意的是,备份 Master 检测到活跃 Master 宕机并切换为活跃 Master 需要一定的时间,因此在实际集群使用过程当中应当尽量避免主动停止当前活跃 Master 进程的操作。下面给出上述操作序列在 BigInsights Web 管理页面的监控情况。

2. BigInsights Web 管理页面监控 HBase 集群状态

A) 添加备用 Master 前 HBase Master 运行状态

 图 9. 添加备用 Master 前 HBase Master 运行状态

B) 添加备用 Master 并启动后 HBase Master 运行状态

图 10. 添加备用 Master 后 HBase Master 运行状态

C) 停止当前活跃 Master 后 HBase Master 运行状态

  图 11. 停止当前活跃 Master 后 HBase Master 运行状态

D) 再次启动已停止的 Master 节点之后 HBase Master 运行状态(由于此时已有活跃 Master,重新启动的 Master 节点将作为备用 Master)

  图 12. 再次启动已停止的 Master 节点之后 HBase Master 运行状态

通过 BigInsights Web 管理页面也可以方便的启动 / 停止指定的 Master 节点,具体步骤请参考相关章节,此处不再赘述。

反向代理 HBase UI

Reverse proxy 是 BigInsights 提供的反向代理工具,可以对 BigInsights 中所拥有 UI 界面的服务组件进行反向代理连接支持。(注意:此功能仅在 BigInsights Enterprise 版本里提供。)

图 13. Reverse proxy 管理 HBase 页面

例如,在打开 Reverse proxy 管理页面之后,利用 Reverse proxy 提供的 URL 和 Alias 映射功能,能够简便地将服务 UI 通过直观的链接来重定向打开。

通过 Reverse Proxy 页面,点击“hbase-master”可以直接打开 HBase Master 管理页面。

 图 14. 打开 HBase Master 管理页面

通过 Reverse Proxy 页面,点击“hbase-regionserver”可以直接打开 HBase Regionserver 管理页面。