Apache HBase 1.3.5 集群部署
后知后觉 暂无评论

HBase 是一个开源的、分布式 NoSQL 数据库,基于 Hadoop 的 HDFS,因此适合用于实时计算,拥有很好的计算处理能力。

HBase

下载

部署完毕 ZooKeeper 之后即可部署 HBase,在官网下载指定版。

wget https://archive.apache.org/dist/hbase/1.3.5/hbase-1.3.5-bin.tar.gz

解压到安装目录

sudo tar xf hbase-1.3.5-bin.tar.gz -C /opt/

执行用户授权

sudo chown -R $USER:$USER /opt/hbase-1.3.5/

配置环境变量

sudo vim /etc/profile.d/hadoop.sh
## 加入以下内容
export HBASE_HOME=/opt/hbase-1.3.5
export PATH=$HBASE_HOME/bin:$PATH

将环境变量发送至所有节点

sudo rsync -av /etc/profile.d/hadoop.sh root@hadoop2:/etc/profile.d/
sudo rsync -av /etc/profile.d/hadoop.sh root@hadoop3:/etc/profile.d/

生效环境变量或者重新登录终端

## 重载环境变量
source /etc/profile

配置 HBase

修改配置文件

cd $HBASE_HOME
vim conf/hbase-env.sh
## 解除以下参数行的注释并修改(注意根据实际情况修改)
export JAVA_HOME=/usr/java/jdk1.8.0_333-aarch64/
export HBASE_MANAGES_ZK=false

修改配置文件 conf/hbase-site.xml 删除已有的配置,然后写入以下内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property> 
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop1,hadoop2,hadoop3</value>
  </property>
  <property> 
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/zookeeper-3.4.14/data</value>
  </property>
</configuration>
小贴士:需要注意的是 hbase.zookeeper.property.dataDir 的值需要与 Zookeeper 的 zoo.cfg 中的 dataDir 的值保持一致。

修改配置文件 conf/regionservers

hadoop2
hadoop3

创建配置文件 conf/backup-masters 添加内容

hadoop2

架构

Node NameMasterZookeeperRegionServer
hadoop1yesyesno
hadoop2backupyesyes
hadoop3noyesyes

分发到所有节点

sudo rsync -av /opt/hbase-1.3.5 root@hadoop2:/opt/
sudo rsync -av /opt/hbase-1.3.5 root@hadoop3:/opt/

启动集群

在启动集群前需要确认 HDFS 安全模式处于关闭状态(OFF)

$ hdfs dfsadmin -safemode get
Safe mode is OFF

启动集群

cd $HBASE_HOME
bin/start-hbase.sh

然后使用浏览器访问 http://hadoop1:16010 即可看到管理页面

测试集群

使用命令行客户端访问 HBase 数据库(双井号下行为实际执行的 hbase 命令,注意甄别)

$ hbase shell
Type "exit<RETURN>" to leave the HBase Shell
Version 1.3.5, rb59afe7b1dc650ff3a86034477b563734e8799a9, Wed Jun  5 15:57:14 PDT 2019

## 创建指定表单
hbase(main):001:0> create 'test', 'cf'
0 row(s) in 1.7140 seconds

=> Hbase::Table - test
## 列出指定表单
hbase(main):002:0> list 'test'
TABLE
test
1 row(s) in 0.0320 seconds

=> ["test"]
## 查询表单描述
hbase(main):003:0> describe 'test'
Table test is ENABLED
test
COLUMN FAMILIES DESCRIPTION
{NAME => 'cf', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP
_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMP
RESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '6553
6', REPLICATION_SCOPE => '0'}
1 row(s) in 0.0580 seconds

## 表单插入数据1
hbase(main):004:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.1650 seconds

## 表单插入数据2
hbase(main):005:0> put 'test', 'row2', 'cf:b', 'value2'
0 row(s) in 0.0260 seconds

## 表单插入数据3
hbase(main):006:0> put 'test', 'row3', 'cf:c', 'value3'
0 row(s) in 0.0250 seconds

## 扫描指定表单
hbase(main):007:0> scan 'test'
ROW                   COLUMN+CELL
 row1                 column=cf:a, timestamp=1671509413355, value=value1
 row2                 column=cf:b, timestamp=1671509418243, value=value2
 row3                 column=cf:c, timestamp=1671510138664, value=value3
3 row(s) in 0.0880 seconds

## 单行返回形式查询表单
hbase(main):008:0> get 'test', 'row1'
COLUMN                CELL
 cf:a                 timestamp=1671509413355, value=value1
1 row(s) in 0.0390 seconds

## 停用表单
hbase(main):009:0> disable 'test'
0 row(s) in 2.4030 seconds

## 启用表单
hbase(main):010:0> enable 'test'
0 row(s) in 1.2920 seconds

## 再次停用表单
hbase(main):011:0> disable 'test'
0 row(s) in 2.2690 seconds

## 删除表单
hbase(main):012:0> drop 'test'
0 row(s) in 1.3260 seconds

常见问题

a) 执行集群停止命令时长时间无响应

执行 stop-hbase.sh 时一直出现等待符(...),且长时间无响应时,在所有节点分别执行

ll /tmp/hbase-*.pid

可以查看节点运行的 hbase 实例类型,比如 master, regionserver

然后根据实例的类型进行分别关闭

hbase-daemon.sh stop master
hbase-daemon.sh stop regionserver

附录

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。