HBase体系架构与环境搭建

一、常见的NoSQL数据库

NoSQL数据库的说明与定义

NoSQL是一种不同于关系数据库的数据库管理系统设计方式,是对非关系型数据库的统称。它不依赖于业务逻辑来存储有关联的数据,而是以键值对、列族、文档、图形等非关系模型的形式进行数据存储。

分类

NoSQL数据库通常包括键值数据库(如Redis)、列族数据库(如HBase)、文档数据库(如MongoDB)和图形数据库(如Neo4j)等。

特点

  1. 灵活的可扩展性:NoSQL数据库去掉了关系数据库的关系型特性,数据之间无关系,因此能够轻松地进行横向扩展,以应对大规模数据和高并发访问的需求。
  2. 灵活的数据模型:NoSQL数据库采用多种非关系模型,允许在一个数据元素里存储不同类型的数据,提供了更高的数据模型灵活性。
  3. 高性能:NoSQL数据库通过优化数据存储、读写操作等方面的设计,能够提供更高的性能和吞吐量,特别是在处理大规模数据和高并发场景时表现优异。
  4. 弱一致性:与关系数据库的强一致性不同,NoSQL数据库一般采用最终一致性或者柔性事务的方式来保证数据的一致性,这有助于提升系统的可用性和性能。
  5. 低成本:NoSQL数据库通常采用分布式架构,使用廉价的硬件设备,相对于传统的关系型数据库而言成本较低。

常见的NoSQL数据库

HBase——分布式列数据库:面向列存储,适用于大规模数据处理,如日志分析。
Redis——高性能键值数据库:内存存储,支持多种数据结构,常用于缓存和会话管理。
MongoDB——文档型NoSQL数据库:存储BSON格式文档,支持动态查询,适用于非结构化数据存储。

二、HBase的体系架构和表结构

HBase的体系架构
在这里插入图片描述

其中Region表示列簇。
在Region中,数据将优先存储在内存的MemStore上。当MemStore中的数据量达到一定的阈值时,为了释放内存空间,HBase会将MemStore中的数据刷写到磁盘上,形成Store Files(也称为HFiles)。HFiles是HBase中存储数据的物理文件,它们的大小并不是与DataNode的大小一致,而是随着数据的写入而逐渐增长,直到达到HBase配置的某个大小阈值。之后,这些HFiles会被存储在HDFS的DataNode上,以实现数据的持久化存储。

HBase的表结构
在这里插入图片描述

-- 插入行键为's01'的数据到'info'列族中的'name'列  
PUT '表名', 's01', 'info:name', 'Tom'  
  
-- 插入行键为's01'的数据到'info'列族中的'age'列  
PUT '表名', 's01', 'info:age', '24'  
  
-- 插入行键为's01'的数据到'grade'列族中的'Chinese'列  
PUT '表名', 's01', 'grade:Chinese', '98'  
  
-- 插入行键为's02'的数据到'info'列族中的'name'列  
PUT '表名', 's02', 'info:name', 'Sam'  
  
-- 插入行键为's02'的数据到'info'列族中的'age'列  
PUT '表名', 's02', 'info:age', '29'  
  
-- 插入行键为's02'的数据到'grade'列族中的'Chinese'列  
PUT '表名', 's02', 'grade:Chinese', '51'  
  
-- 插入行键为's03'的数据到'info'列族中的'name'列  
PUT '表名', 's03', 'info:name', 'Mike'

三、搭建HBasa环境

1.本地模式

特点

  1. 不需要HDFS支持,数据存储在操作系统之中

部署

上传安装介质–》解压–》环境变量–》参数文件

参数配置
在这里插入图片描述
.bash_profile

HBASE_HOME=/root/training/hbase-1.3.1
export HBASE_HOME

PATH=$HBASE_HOME/bin:$PATH
export PATH

hbase-env.sh

export JAVA_HOME=/root/training/jdk1.8.0_181

hbase-site.sml

<property>
<name>hbase.rootdir</name>
<value>file:///root/training/hbase-1.3.1/data</value>
</property>

效果
在这里插入图片描述

2.伪分布模式

特点

在单机上模拟分布式环境,具备HBase的所有功能,多用于开发和测试

部署

上传安装介质–》解压–》环境变量–》参数文件

参数配置
在这里插入图片描述
hbase-env.sh

export HBASE_MANAGES_ZK=true

hbase-site.xml

<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.80.111:9000/hbase</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.80.111</value>
</property>

<property>
<name>dfs.replication</name>
<value>1</value>
</property>

regionservers

192.168.80.111

效果
在这里插入图片描述

全分布模式

部署
主节点安装HBase介质,并设置相关环境变量

参数配置
在这里插入图片描述
hbase-env.sh

export JAVA_HOME=/root/training/jdk1.8.0_181
export HBASE_MANAGES_ZK=true

hbase-site.xml

<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.80.112:9000/hbase</value>
</property>

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.80.112</value>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>

regionservers

192.168.80.113
192.168.80.114

将主节点的HBase文件夹复制到从节点上

scp -r hbase-1.3.1/ root@bigdata113:/root/training
scp -r hbase-1.3.1/ root@bigdata114:/root/training

启动
在主节点上运行如下代码

start-all.sh
start-hbase.sh

效果
在这里插入图片描述

HA模式

HA:设置备用的主节点HMaster,当112上的主节点失效时,切换即可
部署:建立好分布式模式即可

切换主节点代码

hbase-daemon.sh start master
  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无奈ieq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值