前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hbase 集群部署

Hbase 集群部署

原创
作者头像
弟大翻着洗
发布2024-09-14 09:36:00
780
发布2024-09-14 09:36:00
举报
文章被收录于专栏:大数据组件部署

介绍

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看看有无报错

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 原理
      • 作用
        • 例子
        • 前提工作
        • 环境变量
        • 搭建
        • 分发
        • 启动
        • 检查结果
        相关产品与服务
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档