HBase

Posted 亿钱君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase相关的知识,希望对你有一定的参考价值。

第 1 章 HBase 原理、简介

1.1 HBase 定义

  • Hbase是分布式面向列(统计分析)存储数据库
  • HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统
  • HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。
  • 几十亿级别数据,秒级响应,耗资源,但速度快!!!
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
前面提到的方式合到一块来解决数据存储问题!!!

在这里插入图片描述

1.2 HBase 特点

  • 1)海量存储
  • 2)列式存储

1
在这里插入图片描述

  • 3)极易扩展
  • 4)高并发(多核)
  • 5)稀疏:列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的
    在这里插入图片描述

1.3 HBase 基本架构

在这里插入图片描述

  • 1)Client:
  • 2)Zookeeper
    -
  • 3)Hmaster(NameNode)
    -
    在这里插入图片描述
  • 4)HregionServer(DataNode)

在这里插入图片描述

  • 5)HDFS:HDFS为Hbase提供最终的底层数据存储服务,同时为HBase提供高可用(Hlog存储在HDFS)的支持

1.3 HBase安装

第 2 章 HBase 快速入门

2.1 HBase 安装部署

2.1.1 Zookeeper 正常部署

在这里插入图片描述
2.1.2 Hadoop 正常部署
在这里插入图片描述
2.1.3 HBase 的解压
在这里插入图片描述
2.1.4 HBase 的配置文件
修改 HBase 对应的配置文件。(hbase/conf目录下)
在这里插入图片描述

  • 1)hbase-env.sh 修改内容:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

 <!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 -->
        <property>
                <name>hbase.master.port</name>
                <value>16000</value>
        </property>

        <property>
                <name>hbase.zookeeper.quorum</name>
                 <value>hadoop102,hadoop103,hadoop104</value>
        </property>

        <property>
                <name>hbase.zookeeper.property.dataDir</name>
                 <value>/opt/module/zookeeper-3.4.10/zkData</value>
        </property>

</configuration>
  • 3)regionservers:
    在这里插入图片描述

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

[atguigu@hadoop102 module]$ ln -s /opt/module/hadoop-3.1.3//etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
[atguigu@hadoop102 module]$ ln -s /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml

2.1.5 HBase 远程发送到其他集群

[atguigu@hadoop102 module]$ xsync hbase/

注意:
在这里插入图片描述
在这里插入图片描述
2.1.6 HBase 服务的启动
在这里插入图片描述

2.1.7 查看 HBase 页面
在这里插入图片描述

在这里插入图片描述

2.2 HBase Shell 操作

2.2.1 基本操作

1.进入 HBase 客户端命令行

[atguigu@hadoop102 hbase]$ bin/hbase shell

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.2 表的操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
注意:删除问题
在这里插入图片描述
在这里插入图片描述

第 3 章 HBase数据结构

3.1 RowKey:行键

  • 与nosql数据库们一样,RowKey是用来检索记录的主键
  • RowKey行键 (RowKey)可以是任意字符串
  • 访问HBASE table中的行,只有三种方式:
    在这里插入图片描述

3.2 Column Family:列族

  • 列族:HBASE表中的每个列,都归属于某个列族
  • 列族是表的schema的一部 分(而列不是),必须在使用表之前定义
  • 列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。

3.3 Cell、Time Stamp

、、、、

3.4 命名空间

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注:删除命名空间时,如命名空间有表,需先删除表后才能删除

第 4 章 HBase原理

4.1 读流程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查询效率低!!!!!!,Hbase是统计分析的,不是用来查询的

4.2 写流程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.3 数据flush过程

在这里插入图片描述

4.4 数据合并过程

在这里插入图片描述

第 6 章 HBase API操作

6.1 环境准备

在这里插入图片描述

6.2 HBaseAPI

6.2.1 获取Configuration对象

6.2.2 判断表是否存在

6.2.3 创建表

6.2.4 删除表

6.2.5 向表中插入数据

6.2.6 删除多行数据

6.2.7 获取所有数据

6.2.8 获取某一行数据

6.2.9 获取某一行指定“列族:列”的数据

6.3 MapReduce

  • 通过 HBase 的相关 JavaAPI,我们可以实现伴随 HBase 操作的 MapReduce 过程,
  • 比如使用MapReduce 将数据从本地文件系统导入到 HBase 的表中
  • 比如我们从 HBase 中读取一些原始数据后使用 MapReduce 做数据分析

6.3.1 官方 HBase-MapReduce

第 7 章 HBase优化

7.1 高可用

7.2 预分区

7.3 RowKey设计

7.4 内存优化

7.5 基础优化

第8章 扩展

8.1 HBase在商业项目中的能力

8.2 布隆过滤器

8.3 HBase2.0新特性

以上是关于HBase的主要内容,如果未能解决你的问题,请参考以下文章

Hbase的bulkload代码

Hbase 出现 org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet 错误(示例代码

无法从 MapReduce 代码访问 HBase

spark集成hbase与hive数据转换与代码练习

实用代码| hbase表的创建以及简单的增删改查

HBase代码学习---Flush流程