当前位置: 代码网 > it编程>数据库>MsSqlserver > 大数据之HBase部署

大数据之HBase部署

2024年07月31日 MsSqlserver 我要评论
HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。

一、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

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

2.1.3 hbase安装目录

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

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

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>
    
    
    
  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

停止:

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

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

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

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

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

<property> <name>hbase.master.maxclockskew</name> <value>180000</value>
<description>time difference of regionserver from master</description>
</property>
  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
在这里插入图片描述

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com