HBase入门(一)

这篇具有很好参考价值的文章主要介绍了HBase入门(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第1章 HBase简介

1.1 HBase定义

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

1.2 HBase数据模型

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

1.2.1 HBase逻辑结构

HBase入门(一)
Hbase基于HDFS
HBase入门(一)
HBase入门(一)

1.2.2 HBase物理存储结构

HBase入门(一)

1.2.3 数据模型

1)Name Space
命名空间,类似于关系型数据库的database概念,每个命名空间下有多个表。HBase两个自带的命名空间,分别是hbase和default,hbase中存放的是HBase内置的表,default表是用户默认使用的命名空间。一个表可以自由选择是否有命名空间,如果创建表的时候加上了命名空间后,这个表名字以:

作为区分。
2)Table
类似于关系型数据库的表概念。不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。这意味着,往HBase写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase能够轻松应对字段变更的场景。
3)Row
HBase表中的每行数据都由一个RowKey和多个Column(列)组成,数据是按照RowKey的字典顺序存储的,并且查询数据时只能根据RowKey进行检索,所以RowKey的设计十分重要。
4) RowKey
Rowkey由用户指定的一串不重复的字符串定义,是一行的唯一标识!数据是按照RowKey的字典顺序存储的,并且查询数据时只能根据RowKey进行检索,所以RowKey的设计十分重
要。
如果使用了之前已经定义的RowKey,那么会将之前的数据更新掉。
5)Column Family
列族是多个列的集合。一个列族可以动态地灵活定义多个列。表的相关属性大部分都定义在列族上,同一个表里的不同列族可以有完全不同的属性配置,但是同一个列族内的所有列都会有相同的属性。
列族存在的意义是HBase会把相同列族的列尽量放在同一台机器上,所以说,如果想让某几个列被放到一起,你就给他们定义相同的列族。
官方建议一张表的列族定义的越少越好,列族太多会极大程度地降低数据库性能,且目前版本Hbase的架构,容易出BUG。
6) Column Qualifier
Hbase中的列是可以随意定义的,一个行中的列不限名字、不限数量,只限定列族。因此列必须依赖于列族存在!列的名称前必须带着其所属的列族!例如info:name,info:age。
因为HBase中的列全部都是灵活的,可以随便定义的,因此创建表的时候并不需要指定列!列只有在你插入第一条数据的时候才会生成。其他行有没有当前行相同的列是不确定,只有在扫描数据的时候才能得知。
7)Time Stamp
用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,其值为写入HBase的时间。在读取单元格的数据时,版本号可以省略,如果不指定,Hbase默认会获取最后一个版本的数据返回。
8)Cell
由{rowkey, column Family:column Qualifier, time Stamp} 唯一确定的单元。cell中的数据全部是字节码形式存贮。
9)Region
Region由一个表的若干行组成。在Region中行的排序按照行键(rowkey)字典排序。Region不能跨RegionSever,且当数据量大的时候,HBase会拆分Region。
Region由RegionServer进程管理。HBase在进行负载均衡的时候,一个Region有可能会从当前RegionServer移动到其他RegionServer上。
Region是基于HDFS的,它的所有数据存取操作都是调用了HDFS的客户端接口来实现的。
HBase入门(一)

1.3 HFile结构

HBase入门(一)

1.4 HBase基本架构

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提供高容错的支持。

第2章 HBase快速入门

2.1 HBase安装部署

HBase入门(一)

2.1.1 Zookeeper正常部署

首先保证Zookeeper集群的正常部署,并启动之:
[aa@hadoop102 zookeeper-3.5.7]$ bin/zksh start
[aa@hadoop103 zookeeper-3.5.7]$ bin/zk.sh start
[aa@hadoop104 zookeeper-3.5.7]$ bin/zk.sh start

2.1.2 Hadoop正常部署

Hadoop集群的正常部署并启动。

[aa hadoop-3.1.3]$ sbin/start-dfs.sh
[aa hadoop-3.1.3]$ sbin/start-yarn.sh

2.1.3 HBase的解压

1)解压Hbase到指定目录。

[aa software]$ tar -zxvf hbase-2.0.5-bin.tar.gz -C /opt/module
[aa software]$ mv /opt/module/hbase-2.0.5 /opt/module/hbase

2)配置环境变量

[aa ~]$ sudo vim /etc/profile.d/my_env.sh
添加
#HBASE_HOME
export HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin

2.1.4 HBase的配置文件

修改HBase对应的配置文件。
1)hbase-env.sh修改内容:

export HBASE_MANAGES_ZK=false

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

     <property>
        <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
    </property>
    
    <property>
        <name>hbase.wal.provider</name>
        <value>filesystem</value>
    </property>


</configuration>

3)vim regionservers: 方便后面群启

hadoop102
hadoop103
hadoop104

必须写自己的端口号:

HBase入门(一)

2.1.5 HBase远程发送到其他集群

[aa@hadoop102 module]$ xsync hbase/

2.1.6 HBase服务的启动

1)单点启动

[aa hbase]$ bin/hbase-daemon.sh start master
[aa hbase]$ bin/hbase-daemon.sh start regionserver
启动一个master(随便哪个都可以启动)和n个regionserver
[aa module]$ hbase-2.0.5/bin/hbase-daemon.sh start master
[aa ~]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh start regionserver
[aa module]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh start regionserver
[aa module]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh start regionserver

HBase入门(一)
停掉regionserver

[aa module]$ /opt/module/hbase-2.0.5/bin/hbase-daemon.sh stop regionserver

HBase入门(一)

注意:如果集群之间的节点时间不同步(安装之前的准备工作),会导致regionserver无法启动,抛出ClockOutOfSyncException异常。

修复提示
(1)同步时间服务

2)属性:hbase.master.maxclockskew设置更大的值
<property>
        <name>hbase.master.maxclockskew</name>
        <value>180000</value>
        <description>Time difference of regionserver from master</description>
</property>

2)群启 建议在配置了到其他机器的免密登录机器上进行群启

[aa hbase]$ bin/start-hbase.sh

哪个机器执行这个命令就在哪个机器启动master
正常全部启动之后的页面:注意三点!否则集群失败!
HBase入门(一)
对应的停止服务:文章来源地址https://www.toymoban.com/news/detail-496728.html

[aa hbase]$ bin/stop-hbase.sh

到了这里,关于HBase入门(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 搭建HBase伪分布式集群

    1. Install zookeeper 1) download zookeeper from https://zookeeper.apache.org/releases.html#download 2) extract binary 3) configurate zoo.cfg 4) start zookeeper 5) try zookeeper Note: use following command to stop zookeeper 2. Install Hadoop 1) download Hadoop from https://hadoop.apache.org/releases.html 2) extract binary 3) configurate 4) format the filesyst

    2024年02月10日
    浏览(45)
  • 分布式数据库HBase

    HBase是一个高可靠、高性能、 面向列 、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和把结构化的松散数据。 HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用 廉价计算机集群 处理由超过10亿行数据和数百万列元素组成的数据表。

    2024年02月09日
    浏览(55)
  • HBase(单机)伪分布式安装

    准备工作:Hadoop已经安装、hbase-1.2.6-bin安装包。 1、上传hbase-1.2.6-bin.tar.gz压缩包到/home/hadoop目录下,并使用tar xvf 解压。 2、终端下输入:vim .bashrc,即用vim编辑器打开bashrc文件。 3、在bashrc文件的末尾设置如下Hbase的环境变量,要注意hbase解压后的文件名是hbase-1.2.6还是hbase-1

    2024年02月04日
    浏览(59)
  • Hbase 系列教程:HBase 分布式文件存储系统解析

    作者:禅与计算机程序设计艺术 : Hbase 是 Apache 的开源 NoSQL 数据库项目之一。它是一个分布式、可扩展的、高性能、面向列的非关系型数据库。作为 Hadoop 大数据生态的一部分,Hbase 以高可用性、可伸缩性和水平可扩展性著称。它提供了一个列族模型(Column Family Model),能

    2024年02月05日
    浏览(50)
  • HBase 伪分布式环境搭建 - 头歌

    mkdir /app cd /opt tar -zxvf hbase-2.1.1-bin.tar.gz -C /app cd /app cd hbase-2.1.1 cd conf echo $JAVA_HOME /usr/lib/jvm/jdk1.8.0_111 vim hbase-env.sh 进入文件,找到下图中红色框框内的路径,将#去掉,把=号后面的路径改成/usr/lib/jvm/jdk1.8.0_111。注意:记得先按A,才能改。 按esc键,输入  :wq  ,回车。 vim hb

    2024年04月28日
    浏览(38)
  • HBase伪分布式集群的复制

    0. prerequisite Suppose 2 hbase pseudo distributed clusters have both started as folowing relevant parameters in hbase-site.xml source destnation hbase.zookeeper.quorum    ubuntu centos2 hbase.zookeeper.property.clientPort 2181 2181 zookeeper.znode.parent /hbase /hbase 1. Create table for replication 1) start hbase shell on source cluster and create a tab

    2024年02月13日
    浏览(36)
  • ZooKeeper+HBase分布式集群环境搭建

    安装版本:hadoop-2.10.1、zookeeper-3.4.12、hbase-2.3.1 一、zookeeper 集群搭建与配置 1. 下载zookeeper安装包 2. 解压移动zookeeper 3. 修改配置文件(创建文件夹) 4. 进入conf/ 5. 修改zoo.cfg文件 6. 进入/usr/local/zookeeper-3.4.12/zkdatas/这个路径下创建一个文件,文件名为myid ,文件内容为1 7. 拷贝到

    2024年02月08日
    浏览(44)
  • 【大数据】分布式数据库HBase

    目录 1.概述 1.1.前言 1.2.数据模型 1.3.列式存储的优势 2.实现原理 2.1.region 2.2.LSM树 2.3.完整读写过程 2.4.master的作用 本文式作者大数据系列专栏中的一篇文章,按照专栏来阅读,循序渐进能更好的理解,专栏地址: https://blog.csdn.net/joker_zjn/category_12631789.html?spm=1001.2014.3001.5482 当

    2024年04月27日
    浏览(46)
  • SpringCloud(17~21章):Alibaba入门简介、Nacos服务注册和配置中心、Sentinel实现熔断与限流、Seata处理分布式事务

    Spring Cloud Netflix项目进入维护模式 https://spring.io/blog/2018/12/12/spring-cloud-greenwich-rc1-available-now 说明 Spring Cloud Netflix Projects Entering Maintenance Mode 什么是维护模式 将模块置于维护模式,意味着 Spring Cloud 团队将不会再向模块添加新功能。我们将修复 block 级别的 bug 以及安全问题,我

    2024年01月19日
    浏览(58)
  • Hbase数据库完全分布式搭建以及java中操作Hbase

    基础的环境准备不在赘述,包括jdk安装,防火墙关闭,网络配置,环境变量的配置,各个节点之间进行免密等操作等。使用的版本2.0.5. 参考官方文档 分布式的部署,都是在单节点服务的基础配置好配置,直接分发到其他节点即可。 jdk路径的配置,以及不适用内部自带的zk. 配

    2024年02月03日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包