HBase的集群管理 | 「掘金日新计划 · 12 月更文挑战」

40 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天

一、本篇笔记重点内容:

  • HBase集群部署
  • 自动化脚本操作
  • 批处理命令
  • 基于shell脚本

二、 详细知识点介绍

在生产环境中使用的多是HBase分布式集群,掌握如何自动化部署HBase集群,以及如何管理与调度好集群是在实际项目中应用HBase的必要条件。

HBase集群部署

HBase集群需要部署到Hadoop之上,它的部署可以参考前面的Hadoop多节点部署,部署逻辑如下。

(1)主机的配置:配置好各节点的操作系统、时间服务、网络、主机名、Java环境、SSH环境。

(2)Hadoop的配置:配置好各节点的Hadoop集群,并验证成功。

(3)Master节点的配置:HBase的Master节点的HBase安装,配置好hbase-env.xml、hbase-site.xml、regionservers等文件。

(4)RegionServer节点的配置:将Master节点的HBase同步复制到各RegionServer节点,并针对性地调整配置。

(5)启动与验证:在Master节点启动HBase,验证安装配置是否成功。

自动化脚本操作

在集群环境下,很多数据的处理不能全靠手动输入命令,而是需要批量处理,在HBase中,提供了多种方式,可以实现批处理。

批处理命令

可以通过建立一个文本文件,将要执行的HBase命令顺次写入,通过hbase shell filename这种方式来执行,以达到批量处理的效果。

例如,这里创建一张新表,然后在表中写入数据,并查询写入后的结果,操作效果如下所示:

$ nano hbase_commandlist

然后在打开的文本文件中,输入一些hbase命令。

然后使用如下批处理命令来执行:

$ hbase shell ~/hbase_commandlist

 

基于Shell脚本

通过echo "create 'tablename','name'" | hbase shell这种形式,可以将Shell脚本与HBase Shell命令关联起来。

例如,这里要批量创建10张表,如果采用前面的批处理方法,创建命令将要写10遍,而这里,只通过for循环,就可以完成。

先编写一个Shell脚本,hbase_shell.sh,然后执行,运行效果如下所示:

$ nano hbase_shell.sh

编辑Shell脚本内容如下:

#!/bin/sh

for i in tb1 tb2 tb3

  do

     echo "begin create table $i"

     echo "create '$i','name'" | hbase shell

     echo "end create table $i"

  done

echo "list" | hbase shell

在执行前,要先给该脚本赋予执行权限:

$ chmod u+x hbase_shell.sh

然后执行该脚本:

$ ./hbase_shell.sh