开启掘金成长之旅!这是我参与「掘金日新计划 · 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