HBase详解(初学者必读)

本文详细介绍了HBase,一个源于Google Bigtable的开源NoSQL数据库。HBase适用于存储半结构化和非结构化数据,尤其擅长处理稀疏数据。它支持实时查询,但在事务控制方面有限。文章涵盖了HBase的逻辑结构,包括行键、列族、列和单元格,以及安装配置步骤,包括单机、伪分布式和完全分布式模式。此外,还讲解了HBase的shell命令行操作和数据写入、读取的原理。
摘要由CSDN通过智能技术生成

一、HBase概述

基于Hadoop数据库工具
来源于Google三篇论文之一 BIGTABLE, APACHE做了开源的实现就是 HBASE 技术
是一种 NoSQL的 非关系型数据库 不符合关系型数据库的范式
适合存储 半结构化 非结构化的数据
适合存储稀疏的数据 空的数据不占用空间
面向列(族)进行存储
提供实时的增删改查的能力 是一种真正的数据库产品
可以存储海量数据 性能非常优良 可以实现 上亿条记录的毫秒级别的查询
但是不支持严格的事务控制 只能在行级别保证事务
是一个高可靠 高性能 面向列 可伸缩的分布式存储系统 利用hbase技术可以在廉价的PC上搭建起大规模结构化存储集群。
HBase利用HadoopHDFS作为其文件存储系统,利用Hadoop的MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调工具。

二、HBase的逻辑结构

HBase使用表来存储数据 但是表的结构和特点和传统的关系型数据库有非常大的区别

行键 - RowKey
就相当于是HBase表中的主键, HBase中的所有的表都要有行键
HBase中的所有的数据都要按照行键的字典顺序排序后存储
对HBase表中数据的查询,只有三种方式:
根据指定行键查询
根据指定的行键范围查询
全表扫描查询

列族(簇) - ColumnFamily
是HBase表中垂直方向保存数据的结构,列族是HBase表的元数据的一部分,需要在定义HBase表时就指定好表具有哪
些个列族,列族中可以包含一个或多个列

列 - Column
HBase表中列族里可以包含一个或多个列,列并不是HBase表的元数据的一部分,不需要在创建表时预先定义,而是可
以在后续使用表时随时为表的列族动态的增加列。

单元格和时间戳 - Cell TimeStamp
在HBase表中,水平方向的行 和 垂直方向的列 交汇 就得到了HBase中的一个存储单元,而在这个存储单元中,可以存
储数据,并且可以保存数据的多个版本,这些个版本之间通过时间戳来进行区分。
所以在HBase中 可以通过 行键 列族 列 时间戳 来确定一个最小的存储数据的单元,这个单元就称之为单元格 Cell。
单元格中的数据都以二进制形式存储,没有数据类型的区别。

三、HBase的安装配置

  1. 安装前提
    JDK Hadoop Zookeeper

  2. 下载安装包
    访问HBase官网下载安装包
    http://hbase.apache.org/
    要注意下载的版本必须和 JDK Hadoop的版本相匹配

  3. HBase安装 - 单机模式
    a. 前提条件,安装jdk 和 hadoop,并配置了环境变量
    b. 解压安装包
    tar -zxvf xxxxx.tar.gz
    c. 修改HBase的配置文件conf/hbase-site.xml
    这个选项指定了Hbase底层存储数据的磁盘位置,如果不配置默认在/tmp/hbase-[username],而/tmp是linux的临时
    目录,其中的数据随时有可能被清空,所以必须修改

    hbase.rootdir
    file:/// /hbase

    hbase.rootdir:指定底层存储位置
    d.在单机模式下,此路径配置为磁盘路径, HBase将会基于普通的磁盘文件来进行工作,也即不使用HDFS作为底层存
    储,优点是方便,缺点是底层数据不是分布式存储,性能和可靠性没有保证,主要用作开发测试,不应用在生产环境
    下。

  4. HBase安装 - 伪分布式
    a. 前提条件,安装jdk 和 hadoop,并配置了环境变量
    b. 解压安装包
    tar -zxvf xxxxx.tar.gz
    c. 修改conf/hbase-env.sh修改JAVA_HOME
    export JAVA_HOME=xxxx
    d. 修改hbase-site

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值