Hbase 集群部署

2024-09-14 09:36:00 浏览数 (4)

介绍

HBase 是一个开源的分布式、可扩展的 NoSQL 数据库,基于 Hadoop 的 HDFS(Hadoop Distributed File System)构建,主要用于处理大规模的结构化数据。它提供了随机、实时的读写访问,适合于需要快速查询和更新的场景。

原理

HBase 的工作原理可以分为以下几个关键部分:

  1. 数据模型:HBase 使用列族(Column Family)和行键(Row Key)来组织数据。数据以表格的形式存储,但与传统关系型数据库不同,HBase 的表可以有动态列。
  2. 存储结构:HBase 将数据分为多个区域(Region),每个区域包含一部分数据。区域会根据数据量自动分裂,以实现负载均衡。
  3. 读写操作:HBase 支持快速的随机读写操作。写入数据时,数据首先写入内存中的 MemStore,然后定期刷新到磁盘上的 HFile 中。读取数据时,HBase 会在 MemStore 和 HFile 中查找所需数据。
  4. 分布式架构:HBase 采用主从架构,主节点(Master)负责管理区域的分配和负载均衡,而从节点(Region Server)负责实际的数据存储和处理。

作用

HBase 的主要作用是提供高效的实时数据存储和访问,适用于需要快速查询和更新的应用场景,如社交网络、在线广告、物联网等。

例子

  1. 数据模型:想象你在一个图书馆,书籍按照作者(行键)和类别(列族)进行分类。每本书可以有不同的章节(动态列),这就类似于 HBase 的数据模型。
  2. 存储结构:图书馆的书籍被分成多个书架(区域),每个书架上放置一定数量的书籍。当某个书架上的书籍太多时,图书馆会将其分成两个书架,以便更好地管理和查找。这就像 HBase 中的区域分裂。
  3. 读写操作:当你借书时,首先会在图书馆的前台登记(写入 MemStore),然后图书馆会定期更新书籍的借阅记录(写入 HFile)。当你想查找一本书时,图书馆会先在前台查找(查找 MemStore),如果找不到,再去书架上查找(查找 HFile)。
  4. 分布式架构:图书馆有一个管理员(主节点),负责管理所有书架和书籍的分配,而每个书架上都有工作人员(从节点),负责维护和管理书籍。这种分工使得图书馆能够高效运作,类似于 HBase 的分布式架构。

前提工作

  • 搭建hbase之前可先搭建zookeeper
代码语言:shell复制
cd /opt/module

# 解压
tar -zxvf hbase-2.4.11-bin.tar.gz
# 重命名
mv hbase-2.4.11-bin hbase

环境变量

代码语言:shell复制
# 编辑配置文件
vim /etc/profile

# HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=:$HBASE_HOME/bin:$PATH

# 加载环境变量使其生效
source /etc/profile

搭建

代码语言:shell复制
# 将Hadoop相关配置文件拷贝至conf目录下
cp core-site.xml hdfs-site.xml /opt/module/hbase/conf

# 修改配置文件
# hbase-env.sh
vim hbase-env.sh

export JAVA_HOME=/opt/module/jdk
export HBASE_MANAGES_ZK=false
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

# hbase-site.xml
vim hbase-site.xml
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop102:8020/hbase</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop102:2181,hadoop103:2181,hadoop104:2181</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>

# regionservers
vim regionservers

hadoop102
hadoop103
hadoop104

分发

代码语言:shell复制
# 远程拷贝
scp -r /opt/module/hbase hadoop103:/opt/module/
scp -r /opt/module/hbase hadoop104:/opt/module/

启动

  • 切换至hadoop102
  • 启动hbase之前需要先启动Hadoop以及zookeeper
代码语言:shell复制
# 启动hbase
start-hbase.sh

# 启动hbase shell
hbase shell

检查结果

  • hbase shell 输入list看看有无报错

0 人点赞