HBase

Posted 亿钱君

tags:

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

HBase

第 1 章 HBase 原理、简介

1.1 HBase 定义

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



前面提到的方式合到一块来解决数据存储问题!!!

1.2 HBase 特点

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


  • 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的主要内容,如果未能解决你的问题,请参考以下文章

变动率怎么算,急,求救

如何批量变动摘要

JVM扩展之JDK9中有关类加载器的变动

JVM扩展之JDK9中有关类加载器的变动

JVM扩展之JDK9中有关类加载器的变动

变动成本有哪些