• 大数据之HBase部署


    一、HBase简介

    1.1 HBase定义

    HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库

    1.2 HBase数据模型

    逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。
    但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map

    1.2.1 HBase逻辑结构

    在这里插入图片描述

    1.2.2 HBase 物理存储结构

    在这里插入图片描述

    1.2.3 数据模型

    • Name Space

    命名空间,类似于关系型数据库的 DatabBase 概念,每个命名空间下有多个表。HBase 有两个自带的命名空间,分别是 hbase 和 default,hbase 中存放的是 HBase 内置的表, default 表是用户默认使用的命名空间。

    • Region

    类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需 要声明具体的列。这意味着,往 HBase 写入数据时,字段可以动态、按需指定。因此,和关 系型数据库相比,HBase 能够轻松应对字段变更的场景。

    • Row

    HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey 的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。

    • Column

    HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限 定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。

    • Time Stamp

    用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会 自动为其加上该字段,其值为写入 HBase 的时间。

    Cell
    由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell 中的数 据是没有类型的,全部是字节码形式存储。

    1.3 HBase 基本架构

    在这里插入图片描述
    架构角色:

    • 1. Region Server

    Region Server 为 Region 的管理者,其实现类为 HRegionServer,主要作用如下: 对于数据的操作:get, put, delete;
    对于 Region 的操作:splitRegion、compactRegion。

    • 2. Master

    Master 是所有 Region Server 的管理者,其实现类为 HMaster,主要作用如下: 对于表的操作:create, delete, alter
    对于 RegionServer 的操作:分配 regions 到每个 RegionServer,监控每个 RegionServer
    的状态,负载均衡和故障转移。

    • 3. Zookeeper

    HBase 通过 Zookeeper 来做 Master 的高可用、RegionServer 的监控、元数据的入口以及 集群配置的维护等工作。

    • 4. HDFS

    HDFS 为 HBase 提供最终的底层数据存储服务,同时为 HBase 提供高可用的支持。

    二、HBase集群安装

    2.1 HBase 安装部署

    2.1.1 Zookeeper 正常部署

    zookeeper集群需正常部署==>
    启动zookeeper:

    [xiaobai@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start
    [xiaobai@hadoop103 zookeeper-3.4.10]$ bin/zkServer.sh start
    [xiaobai@hadoop104 zookeeper-3.4.10]$ bin/zkServer.sh start
    
    • 1
    • 2
    • 3

    2.1.2 Hadoop 正常部署

    hadoop–集群配置/群起集群==>

    hadoop启动:

    [xiaobai@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh [xiaobai@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
    
    • 1

    2.1.3 HBase安装目录

    将HBase解压至/opt/module/目录:

    (base) [xiaobai@hadoop102 hbase]$ tar -zxvf hbase-2.0.5-bin.tar.gz -C /opt/module/
    
    • 1

    2.1.4 HBase配置文件

    修改Hbase对应的配置文件

    1. hbase-env.sh

      (base) [xiaobai@hadoop102 conf]$ vim hbase-env.sh

    在这里插入图片描述

    1. hbase-site.xml

      (base) [xiaobai@hadoop102 conf]$ 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,hadoop103,hadoop104</value>
         </property>
      </configuration>
      
      
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
    2. regionservers:

      (base) [xiaobai@hadoop102 conf]$ vim regionservers
      hadoop102
      hadoop103
      hadoop104

    3. 分发hbase:

      (base) [xiaobai@hadoop102 conf]$ xsync /opt/module/hbase/

    4. 软连接 hadoop 配置文件到 HBase:

      [xiaobai@hadoop102 module]$ ln -s /opt/module/hadoop-3.2.2/etc/hadoop/core-site.xml site.xml
      [atguigu@hadoop102 module]$ 3.2.2/etc/hadoop/hdfs-site.xml site.xml

    tips:在配置了HADDOP_HOME的时候,可以不用软连接!

    1. 启动hbase:

    单节点启动,在哪个节点执行命令,哪个节点就是master!

    (base) [xiaobai@hadoop102 hbase]$ bin/start-hbase.sh 
    
    
    (base) [xiaobai@hadoop102 hbase]$ jps
    17056 QuorumPeerMain
    20928 RunJar
    67456 HRegionServer
    16883 JobHistoryServer
    16277 DataNode
    16662 NodeManager
    16126 NameNode
    67103 HMaster
    67582 Jps
    [xiaobai@hadoop103 ~]$ jps
    111509 NodeManager
    116933 HRegionServer
    10325 Kafka
    111924 QuorumPeerMain
    111371 ResourceManager
    111151 DataNode
    117038 Jps
    [xiaobai@hadoop104 module]$ jps
    86050 Jps
    82260 NodeManager
    82153 SecondaryNameNode
    82440 QuorumPeerMain
    85836 HRegionServer
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    停止:

    (base) [xiaobai@hadoop102 hbase]$ bin/stop-hbase.sh 
    
    • 1

    此命令若一直处于等待状态停止不了的话,就先停止master,再执行停止hbase命令即可:

    (base) [xiaobai@hadoop102 hbase]$ hbase-daemon.sh stop master
    (base) [xiaobai@hadoop102 hbase]$ stop-hbase.sh
    
    • 1
    • 2

    注:
    如果集群之间的节点时间不同步,会导致 regionserver 无法启动,抛出 ClockOutOfSyncException 异常。

    更改时间同步
    属性:hbase.master.maxclockskew 设置更大的值:

     hbase.master.maxclockskew 180000
    Time difference of regionserver from master
    
    
    • 1
    • 2
    • 3
    1. 修改环境变量:

      (base) [xiaobai@hadoop102 conf]$ cd /etc/profile.d/
      (base) [xiaobai@hadoop102 profile.d]$ sudo vim my_env.sh

    在这里插入图片描述

    1. source环境变量:

      (base) [xiaobai@hadoop102 profile.d]$ source /etc/profile.d/my_env.sh

    2.1.5 查看hbase页面

    启动成功后,可以通过“host:port”的方式来访问 HBase 管理页面,例如: http://hadoop102:16010
    在这里插入图片描述

  • 相关阅读:
    猜年龄小游戏(while 和 if的运用)
    蓝鲸研运体系在腾讯内的应用实践
    KMP中的BuildConfig
    linux系统配置Samba实现与Windows系统的文件共享
    【Redis专题】Redis持久化、主从与哨兵架构详解
    Elasticsearch安装访问
    洛谷P4316 绿豆蛙的归宿
    【NOI模拟赛】寄(树形DP)
    蓝桥等考Python组别十六级002
    java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展
  • 原文地址:https://blog.csdn.net/m0_67391377/article/details/126565624