HBase学习笔记(1)—— HBase 介绍,安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012292754/article/details/86559278

1 HBase

  • 每条数据有唯一的标识符
  • rowkey : 主键
  • 面向列的数据库
  • cell : rowkey + columnfamily + cplumn01 + timesstamp

1.1 Table in HBase

  • Schema : TableName & Column Family Name;
  • value is stored in column with version as byte[]

1.2 HBase 架构

在这里插入图片描述

2 HBase 配置

  • hbase-env.sh
export JAVA_HOME=/usr/apps/jdk1.8.0_181-amd64
export HBASE_MANAGES_ZK=false
  • hbase-site.xml
<configuration>
<property>
	<name>hbase.rootdir</name>
	<value>hdfs://node1:8020/hbase</value>
</property>

<property>
	<name>hbase.cluster.distributed</name>
	<value>true</value>
</property>

<property>
	<name>hbase.zookeeper.quorum</name>
	<value>node1:2181,node2:2181,node3:2181</value>
</property>

</configuration>
  • regionservers
node1
node2
node3

2.1 启动 HBase

  • 先分别在 node1,node2,node3 启动 zookeeper
    zkServer.sh
  • 启动 HDFS
  • 启动 HBase : start-hbase.sh
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 浏览器访问: http://node1:60010
    在这里插入图片描述

3 测试 HBase

  • hbase shell
    在这里插入图片描述
  • 创建表
hbase(main):005:0> create 'user','info'
0 row(s) in 1.3070 seconds

=> Hbase::Table - user

  • 查看表信息
hbase(main):006:0> describe 'user'
Table user is ENABLED                                                                                                            
user                                                                                                                             
COLUMN FAMILIES DESCRIPTION                                                                                                      
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING 
=> 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_
SCOPE => '0'}                                                                                                                    
1 row(s) in 0.0810 seconds

  • 插入数据
hbase(main):007:0> put 'user' ,'10001','info:name','Mike'
0 row(s) in 0.0830 seconds

hbase(main):008:0> put 'user' ,'10001','info:age','22'
0 row(s) in 0.0130 seconds

hbase(main):009:0> put 'user' ,'10001','info:sex','male'
0 row(s) in 0.0100 seconds

hbase(main):010:0> put 'user' ,'10001','info:addr','New York'
0 row(s) in 0.0130 seconds

3.1 HBase 的 3 种数据查询方式

  1. 依据 rowkey 查询,最快get
  2. 范围查询: scan range
  3. 全表扫描:scan
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 删除
    在这里插入图片描述
    在这里插入图片描述

4 HBase 物理模型

  • Table 中的所有行都按照 row key 的字典序排列;
  • Table 在行的方向上分割为多个 Region
  • Region 按大小分割,每个表开始只有一个 region ,随着数据的增多,region 不断增大,当增大到一个阈值的时候,region 就会等分两个新的 region
  • region 是 HBase 中分布式存储和负载均衡的最小单元,不同 region 分布到不同 RegionServer
  • Region 虽然是分布式存储的最小单元,但并不是存储的最小单元。
* Region 由一个或者多个 Store 组成,每个 store 保存一个 columns family
* 每个 Store 又由一个 memStore 和 0 至多个 StoreFile 组成;
* memStore 存储在内存中,StoreFile 存储在 HDFS

5 HBase 数据写入流程

  • put -> cell
* 0) wal (hdfs)
* 1) memstore
* 2) storefile (hdfs)

6 HBase功能

  • 存储数据
  • 检索数据
  • 海量数据,数据条目上亿
  • 检索速度:准实时,秒级别
  • 基于 HDFS
* 数据安全性
* 普通的商用 PC

7 HBase Region

  • [startRowKey - stopRowKey )
  • 默认的情况下,创建一个表时,会给一个表创建一个Region

猜你喜欢

转载自blog.csdn.net/u012292754/article/details/86559278