千家信息网

HBase讲解及部署

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,HBase 是一个 NoSQL 数据库什么是 NoSQL 数据库?基于 Key-value 来保存数据NoSQL 数据库不支持事物常见的 NoSQL 数据库:HBase: 基于 HDFS ,面向列的数
千家信息网最后更新 2025年02月05日HBase讲解及部署

HBase 是一个 NoSQL 数据库

什么是 NoSQL 数据库?
基于 Key-value 来保存数据
NoSQL 数据库不支持事物

常见的 NoSQL 数据库:
HBase: 基于 HDFS ,面向列的数据库
表 ----> 目录
数据 ----> 文件

Redis: 基于内存的一个 NoSQL 数据库, 支持持久化(RDB,AOF)
前身: MemCached 不支持持久化

MongoDB: 文档型的 NoSQL 数据库(BSON文档,JSON的二进制)

Cassandra: 面向列的 NoSQL 数据库

HBase 的表结构

article(表)

rowkey
内容
作者
评论
标题
正文

用户
内容
文章1
先有鸡还是先有蛋
……
某人
喷手
鸡都不造你是肿么造的
文章……
……
……………………


体系结构


HBase 环境部署:

本地模式 ---1台主机: 不需要 HDFS ,直接把数据存在操作系统上

1. 安装 JAVA 环境,修改环境变量

2. 安装 HBase

伪分布模式---1台主机: 需要HDFS 支持,数据直接存在 HDFS 上

1. 安装 JAVA 环境,修改环境变量

2. 部署 HDFS 伪分布式

3. 部署 HBase 伪分布式

全分布模式---3台主机: 需要HDFS 支持,数据直接存在 HDFS 上

1. 安装 JAVA 环境,修改环境变量

2. 部署 HDFS 全分布式

3. 部署 HBase 全分布式

HA 全分布模式---3台主机


环境部署前期准备:

设置环境变量 vi ~/.bash_profile
HBASE_HOME=/root/training/hbase-1.3.1
export HBASE_HOME

PATH=$HBASE_HOME/bin:$PATH
export PATH

本地模式:
hbase-env.sh
28 export JAVA_HOME=/root/training/jdk1.8.0_144

hbase-site.xml

hbase.rootdir
file:///root/training/hbase-1.3.1/data

启动 HBase: start-hbase.sh


伪分布模式
hbase-env.sh
129 export HBASE_MANAGES_ZK=true

hbase-site.xml

hbase.rootdir
hdfs://192.168.157.11:9000/hbase



hbase.cluster.distributed
true



hbase.zookeeper.quorum
192.168.157.11



dfs.replication
1


regionservers
192.168.157.11

启动 HBase: start-hbase.sh

全分布模式
hbase-site.xml

hbase.rootdir
hdfs://192.168.157.12:9000/hbase



hbase.cluster.distributed
true



hbase.zookeeper.quorum
192.168.157.12



dfs.replication
2



hbase.master.maxclockskew
180000


regionservers
192.168.157.13
192.168.157.14

scp -r hbase-1.3.1/ root@bigdata13:/root/training
scp -r hbase-1.3.1/ root@bigdata14:/root/training

启动 HBase: start-hbase.sh

HBase的HA
不需要额外配置,只用在其中一个从节点上单点启动Hmaster

启动 HBase: start-hbase.sh

bigdata13:hbase-daemon.sh start master


HBase Web Console网页端口:16010


HBase 命令行操作:

进入命令行:hbase shell

查看:

查看表:list

查询数据:

scan 相当于 select * from 表名

get 相当于 select * from 表名 where rowkey=?

插入数据:

put '表', ' 行', '列族:列名', '值'

put 'students', 'stu1', 'info:name', 'Tom'

清空表中的数据:

truncate '表名' ---------> 其实质就是先删除表,然后再创建

truncate 'students'

删除表:

disable '表名'

drop '表名'


0