Hbase -2- 集群部署

本文详细介绍了在CentOS7环境下,如何安装配置Hadoop、Zookeeper和HBase集群,包括环境准备、配置文件设置、服务启动以及HBase的Shell操作,如创建表、插入数据、查询等,并进行了主备切换测试。
摘要由CSDN通过智能技术生成

一、基础环境

  1. 软件版本

centos7 x86_64

hadoop 3.3.2

java 1.8

hbase 2.5.3

zookeeper-3.6.4-bin

  1. 机器分布

主机名

IP

角色

程序

n01

192.168.3.204

zk、hmaster、hregionserver

hbase-2.5.3

n02

192.168.3.205

zk、hmaster、hregionserver

hbase-2.5.3

n03

192.168.3.206

zk、hregionserver

hbase-2.5.3

  1. 基础目录

mkdir /opt/module 工程目录

hdfs dfs -mkdir /user/hbase 创建hbase数据目录

  1. 依赖安装

如前面介绍,hbase是建立在hdfs基础上的分布式数据库,所以在搭建hbase前需要完成hdfs集群相关的搭建,可参考前面文章https://blog.csdn.net/weixin_42633805/article/details/129651326

4.1. java 安装

4.2. zookeeper安装

4.3. hadoop安装

4.4. 无密码认证配置

二、安装部署

  1. 配置文件

1.1 hbase-env.sh

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre

export HBASE_HOME=/opt/module/hbase-2.5.3

export HBASE_CLASSPATH=${HBASE_HOME}/conf

export HBASE_REGIONSERVERS=${HBASE_HOME}/conf/regionservers

export HBASE_BACKUP_MASTERS=${HBASE_HOME}/conf/backup-masters

export HBASE_LOG_DIR=${HBASE_HOME}/logs

export HBASE_PID_DIR=/home/hadoop/data/tmp

export HBASE_MANAGES_ZK=false

1.2 hbase-site.xml

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<!-- 指定hbase在HDFS上存储的路径 -->

<property>

<name>hbase.rootdir</name>

<value>hdfs://myhdfs/user/hbase</value>

</property>

<!-- 指定hbase是分布式的 -->

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<!-- 指定zk的地址,多个用“,”分割 -->

<property>

<name>hbase.zookeeper.quorum</name>

<value>n01:2181,n02:2181,n03:2181</value>

</property>

<property>

<name>hbase.wal.provider</name>

<value>filesystem</value>

</property>

1.3 hdfs-site.xml

拷贝hdfs 配置

1.4 core-site.xml

拷贝hdfs配置

1.5 regionservers

n01

n02

n03

1.6 backup-masters

该文件目录中没有,需要自己创建

n02

将工程拷贝到所有节点的/opt/module 目录下

  1. 环境变量

创建hbase.sh 文件,并分发到所有机器上,执行source /etc/profile.d/hbase.sh

#cat /etc/profile.d/hbase.sh

export HBASE_HOME=/opt/module/hbase-2.5.3

export HBASE_CONF_DIR=$HBASE_HOME/conf

export HBASE_CLASS_PATH=$HBASE_CONF_DIR

export PATH=$PATH:$HBASE_HOME/bin

  1. 服务启动

n01 执行

./bin/start-hbase.sh

客户看到regionserver 分布在3台机器上,master 分布在n01,n02机器上。

通过jps -l 在3台机器上分别查看进程是否存在

  1. Web访问

浏览器访问:http://192.168.3.204:16010

http://192.168.3.205:16010

hdfs上发现创建了一些基础数据文件

  1. 执行hbase shell 操作

创建student 表

create 'student','name','age','sex'

  1. 验证测试

master 主备切换测试

手动杀死n01上的master进程

观察n02的状态变化,可以发现n02 接管了n01的角色

刷新页面

执行hbase shell 测试

访问正常

三、Hbase SHELL

  1. 常见的shell 命令

命令

作用

create

创建表

put

插入或更新数据

scan

扫描表并返回所有数据

list

查看包含的表

describe

查看表结构

get

获取指定行或列数据

count

统计表中数据的行数

delete

删除指定行或列的数据

deleteall

删除整个行或列的数据

truncate

清空表中的所有数据

disable

将表职位无效

drop

删除表,包括数据和表结构

  1. shell 命令测试

参考:https://static.kancloud.cn/liuyw/hadoop_liuyw/1685685

创建表

前面测试创建表时使用默认版本,这里使用自定义版本

create 'people',{NAME=>'info',VERSIONS=>3},{NAME=>'data',VERSIONS=>1}

查看表

list 或者 list 'people'

查看表基本信息

插入数据

put 'people','rk001','info:name','zhangsan'

put 'people','rk001','info:gender','female'

put 'people','rk001','info:age','18'

put 'people','rk001','data:hobby','manyplay'

查看所有数据

scan 'people'

单行查出

get 'people','rk001'

条件查询

scan 'people',{COLUMNS=>'info'} //查询列簇为info

scan 'people',{COLUMNS=>['info','data'], filter=>"(QualifierFilter(=,'substring:a'))"} //查询列簇为info, data 并且列表示包含"a" 的信息

scan 'people',{COLUMNS=>'info',STARTROW=>'rk001',ENDROW=>'rk003'} //查询列簇为info, 范文为rk001-rk003的数据

修改数据

put 'people','rk001','info:age','30' // 将rk001的age 修改为30

查看历史版本信息

删除

删除rk001的name信息

delete 'people','rk001','info:name'

删除一行信息

deleteall 'people','rk001'

清空表

truncate 'people'

删除表

删除表前需要将表置为无效

否则会报错,如下

disable 'people'

drop 'people'

list 'people'

四、参考

Hbase官网 https://hbase.apache.org/book.html#_preface

看云-<Hadoop大数据开发>:https://static.kancloud.cn/liuyw/hadoop_liuyw/1685685

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值