当前位置: 首页 > news >正文

HBase体系架构与环境搭建

这里写目录标题

  • 一、常见的NoSQL数据库
  • 二、HBase的体系架构和表结构
  • 三、搭建HBasa环境
    • 1.本地模式
    • 2.伪分布模式
    • 全分布模式
    • HA模式

一、常见的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_HOMEPATH=$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
http://www.lryc.cn/news/429721.html

相关文章:

  • 海思SD3403/SS928V100开发(16)Tsensor驱动开发
  • JVM类加载机制—JVM类加载过程
  • 可变参数模板与包装器
  • 工业控制常用“对象“数据类型汇总(数据结构篇)
  • 优雅处理枚举前端丢失大Long精度问题
  • 【c/c++】 学习ector 容器笔记
  • DN专业3D图形制作软件win/mac软件安装下载(附下载链接)
  • VSCode搭建Hzero(SpringCloud架构)后端开发调试环境
  • 【C++】OJ习题(初阶)
  • 6.4K+ Star!一个强大的本地知识库问答系统,支持多格式文件和跨语言检索,为企业提供高效、安全的数据洞察……
  • mvn编译的时候出现Perhaps you are running on a JRE rather than a JDK 解决方法
  • React原理之Fiber详解
  • 远离“优越感”陷阱,拥抱美好人生
  • Redis的线程模型
  • ubuntu24.04安装nginx1.24
  • 一款好看的WordPress REST API 主题
  • 《5G 与区块链融合:智能城市服务质量的飞跃》
  • 前后端分离开发:用 Apifox 高效管理 API
  • Go Channel 详解
  • 使用FModel提取游戏资产
  • Qt C++ 屏幕录制 保存mp4
  • Adobe After Effects的插件--------CC Cylinder
  • Vue3项目开发——新闻发布管理系统(一)
  • 前端调用后端,出现跨域报错怎么办
  • 使用Node-RED发送数据到巴法云
  • 【今夕是何年】雅达利发布Atari 7800+游戏主机:配备无线手柄、HDMI接口
  • APP支付宝授权获取code uniapp
  • 在Linux系统下安装、配置ETCD
  • lambda 表达式可以传递引用为什么需要引用捕获
  • 【Java】/* 双向链表 - 底层实现 */