HBase 作为 BigTable 的一个开源实现,随着其应用的普及,越来越被各大企业应用于海量数据系统中。本文将帮助读者在大数据云计算 Hadoop 集群应用中利用 HBase 更加高效、直观、便捷地进行存储,查询和优化海量数据。

Apache HBase 的根本知识

2006 年 11 月,Google 宣布了一篇名为《 BigTable 》论文 , 2007 年 2 月,Hadoop 的开发人员对其进行完结并命名为 HBase。 HBase 是根据 Hadoop 之上的一种新式的根据列存储的开源数据存储架构,用于处理大数据问题,是 Hadoop 的分布式数据库。

HBase 现在现已比较老练,***的稳定版别是 0.94.x。HBase 现已被许多大公司选用,如 Facebook, Twitter,Adobe, Cloudera, IBM, 等等。HBase 不是传统 RDBMS 意义上的根据列的数据库,而是运用磁盘进队伍存储格局的数据库,其优势在于供给根据关键字的特定列和次序规模的快速拜访。

HBase 有三个重要的组件:客户端库,一个 master server(可以装备多个备用 master,后文将对此进行详细描绘)以及多个 Region Server。Master 担任分配 Region 到各个不同的 Region Server 上,Region Server 担任存储实践的数据。一同,HBase 经过运用 ZooKeeper,一种牢靠,高可用,一致性的分布式协同服务来协助其完结相应的使命。HBase 集群办理员可以经过在体系运转进程中增加和删去 Region Server 节点来调理改动作业负载。HBase 以 HFile 作为存储数据的根本格局,其底层的文件体系默许选用 HDFS。

图 1. HBases 根本架构

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第1张

图 1. 显现了不同的组件如 HDFS,Zookeeper 是怎样与 HBase 一同和谐作业的。Master Server 担任处理跨 Region Server 的 regions 数据的导入平衡,卸载繁忙的 Region Server 担负,将 region 转移到更空余的 Region Server 上。

HBase Master 不担任实践的数据存储,它和谐导入平衡,保护集群的状况,保护 schema 的更改和 metadata 元数据操作,如创立表和列族(column families),但从不供给任何数据服务。

Region servers 担任加载和保护 region,包含处理对其办理的 region 的一切读写恳求,以及 region 巨细增长到超越装备阀值的时分对其进行切分。

客户端经过与 Zookeeper 通讯获取到其需求进行读写操作的 region 地点的 Region Server 之后,将直接与 Region Server 通讯,并由 Region Server 处理一切相关的恳求。#p#

IBM BigInsights 架构中的 HBase

IBM Big Data(大数据)产品 InfoSphere BigInsights 是大数据办理与剖析渠道, 其底层架构也选用了 Hadoop 和 HBase 对结构化和非结构化数据进行存储和查询。

BigInsightsz 集群软件层次中的 HBase

BigInsights 整合了许多已有的 Hadoop 开源组件,如 HDFS, MapReduce, HBase, Zookeeper 等,将它们很好的融入 BigInsights 软件体系,并与其他 BigInsights 的组件一同协同作业在同一个渠道上。 HBase 被用作 BigInsights 的存储数据库,Zookeeper 被用作 BigInsights 的服务协同组件。假如要运用 HBase, 咱们需求一同装置 Hadoop, Zookeeper, 因为 HBase 选用 Hadoop 作为其文件体系,选用 Zookeeper 作为其服务协同支撑。

当把 BigInsights 布置到一个集群上时,软件层次的结构如图 2. 所示:

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第2张

图 2. BigInsights 中 Hadoop 开源组件列表

HBase 装置和装备

BigInsights 产品集成了经过 IBM JDK 编译和必定改善扩展后的 HBase。在 BigInsights 产品的装置进程中可以经过装置界面挑选和装备 HBase, 装备内容包含指定 HBase 装置途径,日志目录,指定集群中 HBase Master 和 HBase Regionservers 节点以及服务端口。HBase 的二进制软件包默许装置和装备在 BigInsights 集群的一切节点上,也就是说装置完 BigInsights 今后的每个 BigInsights 节点都可以作为 HBase 的客户端运用。

在装置 BigInsights 之前,需求从解压今后的根目录下运转 start.sh 脚本,然后在浏览器中输入 URL http://your-server:8300/Install/ 翻开装置导游,装置导游将***您完结后续的装置进程,装置进程将包含:装置类型(挑选多节点分布式集群装置和装备)挑选,文件体系挑选,组,用户名及 SSH 装备,指定集群节点,组件装置,安全类型挑选等,下面给出详细的 HBase 以及 Zookeeper 的装置装备实例。

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第3张

图 3. HBase 装置和装备

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第4张

图 4. Zookeeper 装置和装备

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第5张

***,当装置完结今后,点击“Finish”或许在后台指令行运转“start.sh shutdown”封闭装置导游。#p#

IBM 对 HBase 的改善和扩展

BigInsights ***极限的供给了一致的,IBM 特有的 HBase 办理功用,包含用户界面以及后台指令行办理形式。这样,用户可以经过简略的界面操作或许后台指令来启停 / 检查 HBase 集群,而不必关怀详细的完结细节。

与此一同,IBM 还供给了一致的用户界面和增加、删去节点指令来支撑 HBase 集群的可伸缩性。

别的,HBase Master 多结点功用的完结,供给并确保了 HBase 在 BigInsights 中的高可用性。以下将对这些改善和扩展功用进行翻开介绍。

IBM BigInsights 中的 HBase 集群办理和监控

BigInsights 集群为 HBase 供给了齐备的办理功用,包含一致的 HBase 用户办理界面,后台指令行办理形式,HBase 服务状况监控,检查、同步、增加、删去、发动、停用、检查 HBase 服务,反向署理 UI,检查 HDFS 中的 HBase,HBase 使用程序提交等。

Web 界面办理 HBase 服务状况

经过 http:// 主节点主机名或 IP:8080/data/html/index.html 进入 BigInsights Web 办理控制台。运用 BigInsights 装置一切模块包含 Hadoop、Hbase、Zookeeper、Oozie、Flume 等。(留意:假如您运用的是 BigInsights Basic 版别,请运用 http:// 主节点主机名或 IP:8080/BigInsights 翻开控制台。下文截图悉数根据 Enterprise 版别,Basic 版别会略有不同。)

图 5. BigInsights Web 办理界面

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第6张

在 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 服务状况监控

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第7张

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

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第8张

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

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第9张

此外,BigInsights 供给了一致的指令行接口对集群的组件进行办理。用户可以便利的运用指令行来检查 HBase 集群运用的健康状况,增加和删去 HBase 节点 , 发动、中止某个服务,或许查询服务的状况等。#p#

检查 HBase 组件的健康状况

您可以 BigInsights 办理节点上经过以下指令来验证 HBase 集群的健康状况:

  1. $/bin/sh$BIGINSIGHTS_HOME/bin/healthcheck.shhbase

同步 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 装备文件:

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

hbase 增删 HBase 节点

BigInsights 渠道支撑增删 HBase 节点的功用。

1. 增加节点

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

  1. $/bin/sh$BIGINSIGHTS_HOME/bin/addnode.shhbasenode1-type=master
  2. $/bin/sh$BIGINSIGHTS_HOME/bin/addnode.shhbasenode1-type=regionserver

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

2. 删去节点

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

  1. $/bin/sh$BIGINSIGHTS_HOME/bin/removenode.shhbase

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

启停和检查 HBase 服务

您可以在 BigInsights 办理节点上运转以下指令来发动 HBase 集群服务:

  1. $/bin/sh$BIGINSIGHTS_HOME/bin/start.shhbase

您可以在 BigInsights 办理节点上运转以下指令来中止 HBase 集群服务:

  1. $/bin/sh$BIGINSIGHTS_HOME/bin/stop.shhbase

检查 HBase 服务:

您可以在 BigInsights 办理节点上运转以下指令来检查 HBase 集群服务状况:

  1. $/bin/sh$BIGINSIGHTS_HOME/bin/status.shhbase

#p#

HBase Master 多结点高可用支撑

咱们可以在 HBase 集群中发动多个 Master 节点,其间***个发动的节点作为活泼 (Active)Master 对外供给服务,而其他的作为备份 (Backup)Master 节点;实践上,HBase 经过 Zookeeper 来保存活泼 Master 节点信息,一旦当时活泼 Master 节点因为硬件毛病或许断电等原因失掉衔接,备份 Master 会经过 Zookeeper 收到该信息,并选举产生新的活泼 Master 供给服务。接下来将详细描绘怎么经过 BigInsights 发动多个 Master 并进行状况监控。

1. 经过指令行形式增加 / 发动 / 监控 HBase Master

A) 登录 BigInsights 办理节点,检查当时 HBase 集群状况

  1. [biadmin@bdvm070~]$status.shhbase
  2. [INFO]Progress-Statushbase
  3. [INFO]@bdvm070.svl.ibm.com-hbase-master(active)started,pid18157
  4. [INFO]@bdvm071.svl.ibm.com-hbase-regionserverstarted,pid12072
  5. [INFO]Deployer-hbaseservicestarted
  6. [INFO]Progress-100%
  7. [INFO]DeployManager-Status;SUCCEEDEDcomponents:[hbase];Consumes:9699ms

B) 增加 bdvm071 为备用 Master 节点

  1. [biadmin@bdvm070~]$addnode.shhbasebdvm071.svl.ibm.com-type=master
  2. [INFO]DeployManager-CheckSSHsetupon[bdvm071.svl.ibm.com]
  3. [INFO]@bdvm071.svl.ibm.com-OK,password-lessSSHhassetup.
  4. ...
  5. [INFO]DeployManager-Addhbasenodes;SUCCEEDEDcomponents:[hbase];Consumes:0ms

C) 发动备用 Master 节点

  1. [biadmin@bdvm070~]$start.shhbase
  2. [INFO]Progress-Starthbase
  3. [INFO]Deployer-makesurezookeeperserviceisstartedbeforestarthbaseservice
  4. [INFO]@bdvm070.svl.ibm.com-hbase-master(active)alreadyrunning,pid18157
  5. [INFO]@bdvm071.svl.ibm.com-hbase-master(backup)started
  6. [INFO]@bdvm071.svl.ibm.com-hbase-regionserveralreadyrunning,pid12072
  7. [INFO]Deployer-hbaseservicestarted
  8. [INFO]Progress-100%
  9. [INFO]DeployManager-Start;SUCCEEDEDcomponents:[hbase];Consumes:14110ms

D) 从头检查 HBase 集群状况

  1. $/bin/sh$BIGINSIGHTS_HOME/bin/syncconfig.sh
0

E) 中止当时活泼 Master 节点并检查 HBase 集群状况

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

经过上述操作咱们可以看到,经过指令行可以在 BigInsights 集群中随时增加备份 Master 并进行 Master 的启停 / 监控。别的需求留意的是,备份 Master 检测到活泼 Master 宕机并切换为活泼 Master 需求必定的时刻,因此在实践集群运用进程傍边应当尽量防止主动中止当时活泼 Master 进程的操作。下面给出上述操作序列在 BigInsights Web 办理页面的监控状况。

2. BigInsights Web 办理页面监控 HBase 集群状况

A) 增加备用 Master 前 HBase Master 运转状况

图 9. 增加备用 Master 前 HBase Master 运转状况

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第10张

B) 增加备用 Master 并发动后 HBase Master 运转状况

图 10. 增加备用 Master 后 HBase Master 运转状况

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第11张

C) 中止当时活泼 Master 后 HBase Master 运转状况

图 11. 中止当时活泼 Master 后 HBase Master 运转状况

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第12张

D) 再次发动已中止的 Master 节点之后 HBase Master 运转状况(因为此刻已有活泼 Master,从头发动的 Master 节点将作为备用 Master)

图 12. 再次发动已中止的 Master 节点之后 HBase Master 运转状况

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第13张

经过 BigInsights Web 办理页面也可以便利的发动 / 中止指定的 Master 节点,详细进程请参阅相关章节,此处不再赘述。#p#

反向署理 HBase UI

Reverse proxy 是 BigInsights 供给的反向署理东西,可以对 BigInsights 中所具有 UI 界面的服务组件进行反向署理衔接支撑。(留意:此功用仅在 BigInsights Enterprise 版别里供给。)

图 13. Reverse proxy 办理 HBase 页面

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第14张

例如,在翻开 Reverse proxy 办理页面之后,运用 Reverse proxy 供给的 URL 和 Alias 映射功用,可以简洁地将服务 UI 经过直观的链接来重定向翻开。

经过 Reverse Proxy 页面,点击“hbase-master”可以直接翻开 HBase Master 办理页面。

图 14. 翻开 HBase Master 办理页面

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第15张

经过 Reverse Proxy 页面,点击“hbase-regionserver”可以直接翻开 HBase Regionserver 办理页面。

图 15. 翻开 HBase Region Server 办理页面

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第16张

#p#

检查 HDFS 中的 HBase

经过办理 HDFS 中的 HBase 页面,可以直接检查 HBase 在 HDFS 中的运用状况,包含 -ROOT-, .META., logs, BigInsights Monitoring 的监控信息, hbase.id, hbase.version, splitlog, 点击“hbase”可以检查 HBase 目录巨细,用户和目录权限等,如图。

图 16. 图形化办理 HDFS 中的 HBase

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第17张

提交 HBase 使用程序

BigInsights 供给简略的 HBase 使用 demo,经过“Application”中的 HBase 页面翻开。根据需求,用户可以挑选其间的 HBase 使用程序发布和运转。(留意:此项功用仅在 BigInsights Enterprise 版别里供给。)

图 17. HBase 使用程序

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第18张

图 18 描绘了一个简略的 HBase 的使用的发布与运转,此使用程序将主动完结表导出成 CSV 格局。

图 18. 运转 HBase 导出表使用程序

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第19张

输入必要的参数后,如履行操作的称号,表名,Row 键值,要获得的 record 数目等,HDFS 中的输出格局,输出目录等,点击运转按钮,作业将被提交到 BigInsight 的 HBase 集群上运转,作业运转的详细状况可以经过 Application status 页面监督

图 19. 检查程序运转状况

分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)  分布式 管理和监控 第20张

从该页面可以检查作业称号,装备文件,作业开端的运转时刻以及完毕的时刻,而且可以便利的检查作业履行的状况。

转载请说明出处
知优网 » 分布式数据库 Hbase 的高可用办理和监控(HBASE分布式数据库)

发表评论

您需要后才能发表评论