NoSQL 数据库 HBase

  • 5.1HBase 原理
  • 5.1.1 HBase 概述
  • 5.1.2 HBase 核心概念
  • 5.1.3 HBase 的关键流程
  • 5.2 HBase 伪分布式安装
  • 5.2.1 安装 HBase 的前提条件
  • 5.2.2 解压并配置环境变量
  • 5.2.3 配置 HBase 参数
  • 5.2.4 验证 HBase
  • 5.3 HBase Shell
  • 5.3.1 HBase Shell 常用命令
  • 5.3.2 HBase Shell 综合示例
  • 5.3.3 HBase Shell 全部命令


hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap

5.1HBase 原理

  • 既可以存储结构化数据,也可以存储非结构化数据或半结构化数据

5.1.1 HBase 概述

HBase 是基于 Apache Hadoop 的面向列的 NoSQL 数据库,是 Google 的 BigTable 的开源实现。HBase 是一个针对半结构化数据的开源的、多版本的、可伸缩的、高可靠的、高性能的、分布式的和面向列的动态模式数据库。

5.1.2 HBase 核心概念

  • HBase 是一个稀疏、多维度、有序的映射表。

表的每一行由一个或多个列族组成,一个列族中可以包含任意多个列。在同一个表模式下,每行所包含的列族是相同的,也就是说,列族的个数与名称都是相同的,但是每一行中的每个列族中列的个数可以不同,如图

hbase 属于olap hbase是一种nosql数据库吗_nosql_02

  • 数据模型的基本概念







Table

Row

Column

ColumnFamily

ColumnQualifier

Cell

Timestamp


  1. 表(Table)
  2. 行关键字
  3. 列关键字
  4. 列族
  5. 列限定符
  6. cell(单元格)
  7. 时间戳
  • 两个视图
  1. 概念视图
  2. hbase 属于olap hbase是一种nosql数据库吗_hadoop_03

  3. 物理视图

hbase 属于olap hbase是一种nosql数据库吗_数据库_04

5.1.3 HBase 的关键流程

  1. Region的分配
  2. RegionSercer 上线
  3. RegionServer 下线
  4. Master 上线
  5. Master 下线
  6. 写请求处理过程

5.2 HBase 伪分布式安装




解压

配置环境变量

配置HBase参数


5.2.1 安装 HBase 的前提条件

Hadoop 已经安装并成功启动,如图:

hbase 属于olap hbase是一种nosql数据库吗_大数据_05

5.2.2 解压并配置环境变量

  1. 解压
tar -xvf hbase-[版本号]-bin.tar.gz

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_06

  1. 配置环境变量
vi /etc/profile

hbase 属于olap hbase是一种nosql数据库吗_数据库_07

  • 使环境变量生效
source /etc/profile

hbase 属于olap hbase是一种nosql数据库吗_hadoop_08

5.2.3 配置 HBase 参数

  1. 配置hbase-env.sh
  2. hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_09

  3. 配置hbase-site.xml 添加以下内容

添加以下 代码

<configuration>
        <property>    <!--设置的是hdfs的文件目录-->
                <name>hbase.rootdir</name>
                <value>hdfs://master:8020/hbase</value>
        </property>
        <property>    <!--集群模式,分布式true,单机模式false-->
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
         <property>    <!--zookeeper集群的URL配置-->
                <name>hbase.zookeeper.quorum</name> 
                <value>master</value>
        </property>
        
       <property>
	            <name>zookeeper.znode.parent</name>
	            <value>/hbase</value>
       </property>
       <property>
               <name>hbase.zookeeper.property.dataDir</name>
               <value>/opt/zk_data</value>
       </property>
 </configuration>

5.2.4 验证 HBase

  1. 启动HBase
conf/start-hbase.sh

hbase 属于olap hbase是一种nosql数据库吗_数据库_10


2. 启动 hbase shell 命令

hbase shell

hbase 属于olap hbase是一种nosql数据库吗_hadoop_11

  1. 输入list (显示所有表)

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_12

  1. 浏览器验证 [http://192.168.9.3:16010]

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_13

  1. 查看 HDFS 文件系统
hadoop fs -ls   /

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_14

  1. HBase 进程
jps

hbase 属于olap hbase是一种nosql数据库吗_nosql_15

以上执行全部成功则 hbase 安装完成并运行正常

5.3 HBase Shell

  • HBase 为用户提供了一个非常方便的命令行使用方式——HBase Shell。
  • HBase Shell 提供了大多数的 HBase 命令,通过 HBase Shell,用户可以方便地创建、删除及修改表,还可以向表中添加数据,列出表中的相关信息等。

5.3.1 HBase Shell 常用命令

  1. create 命令

hbase 属于olap hbase是一种nosql数据库吗_数据库_16

  1. list 命令

hbase 属于olap hbase是一种nosql数据库吗_hadoop_17

  1. describe 命令
  2. hbase 属于olap hbase是一种nosql数据库吗_nosql_18

  3. put 命令

hbase 属于olap hbase是一种nosql数据库吗_大数据_19

  1. get 命令

hbase 属于olap hbase是一种nosql数据库吗_数据库_20

  1. scan 命令
  2. hbase 属于olap hbase是一种nosql数据库吗_nosql_21


  3. hbase 属于olap hbase是一种nosql数据库吗_hadoop_22

  4. count 命令
  5. hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_23

  6. exists 命令
  7. hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_24

  8. 修改表结构

hbase 属于olap hbase是一种nosql数据库吗_hadoop_25

  1. delete 命令

hbase 属于olap hbase是一种nosql数据库吗_hadoop_26

delete all 'scores'      //删除全部数据
  1. truncate 命令 (清空表中数据,保留表结构)
truncate 'scores'
  1. disable、drop 命令
// 彻底删除表中数据和表结构-->先disable再drop
disable 'scores'
drop  'scores'
  1. status 命令

hbase 属于olap hbase是一种nosql数据库吗_数据库_27

  1. version 命令

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_28

5.3.2 HBase Shell 综合示例

  1. 根据row key 查询

hbase 属于olap hbase是一种nosql数据库吗_数据库_29

  1. row key + 列族

hbase 属于olap hbase是一种nosql数据库吗_hadoop_30

  1. row key + 列族+列

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_31

  1. 查看时间戳

hbase 属于olap hbase是一种nosql数据库吗_数据库_32

  1. 根据版本查询

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_33

  1. 根据时间戳查询

hbase 属于olap hbase是一种nosql数据库吗_数据库_34

  1. 删除列

hbase 属于olap hbase是一种nosql数据库吗_hadoop_35

  1. 删除行
  2. hbase 属于olap hbase是一种nosql数据库吗_大数据_36

  3. 统计记录条数

hbase 属于olap hbase是一种nosql数据库吗_hbase 属于olap_37

  1. 清空表

hbase 属于olap hbase是一种nosql数据库吗_大数据_38

5.3.3 HBase Shell 全部命令

help //列出全部的 hbase shell 命令

general、 ddl 、namespace、 dml 、tool…