[162]

一、HBase简介

1.1什么是HBase

HBase 是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用 HBASE 技

术可在廉价 PC Server 上搭建起大规模结构化存储集群。

HBase 的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能

够处理由成千上万的行和列所组成的大型数据。

1.2HBase特点

1)海量存储

Hbase 适合存储 PB 级别的海量数据,在 PB 级别的数据以及采用廉价 PC 存储的情况下,

能在几十到百毫秒内返回数据。这与 Hbase 的极易扩展性息息相关。正式因为 Hbase 良好的

扩展性,才为海量数据的存储提供了便利。

2)列式存储

这里的列式存储其实说的是列族存储,Hbase 是根据列族来存储数据的。列族下面可以

有非常多的列,列族在创建表的时候就必须指定。

3)极易扩展

Hbase 的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩

展,一个是基于存储的扩展(HDFS)。

通过横向添加 RegionSever 的机器,进行水平扩展,提升 Hbase 上层的处理能力,提升 Hbsae

服务更多 Region 的能力。

备注:RegionServer 的作用是管理 region、承接业务的访问,这个后面会详细的介绍通

过横向添加 Datanode 的机器,进行存储层扩容,提升 Hbase 的数据存储能力和提升后端存

储的读写能力。

4)高并发

由于目前大部分使用 Hbase 的架构,都是采用的廉价 PC,因此单个 IO 的延迟其实并不

小,一般在几十到上百 ms 之间。这里说的高并发,主要是在并发的情况下,Hbase 的单个

IO 延迟下降并不多。能获得高并发、低延迟的服务。

5)稀疏

稀疏主要是针对 Hbase 列的灵活性,在列族中,你可以指定任意多的列,在列数据为空

的情况下,是不会占用存储空间的。

1.3HBase架构

从图中可以看出 Hbase 是由 Client、Zookeeper、Master、HRegionServer、HDFS 等

几个组件组成,下面来介绍一下几个组件的相关功能:

1)Client

Client 包含了访问 Hbase 的接口,另外 Client 还维护了对应的 cache 来加速 Hbase 的访

问,比如 cache 的.META.元数据的信息。

2)Zookeeper

HBase 通过 Zookeeper 来做 master 的高可用、RegionServer 的监控、元数据的入口以及

集群配置的维护等工作。具体工作如下:

通过 Zoopkeeper 来保证集群中只有 1 个 master 在运行,如果 master 异常,会通过竞争

机制产生新的 master 提供服务

通过 Zoopkeeper 来监控 RegionServer 的状态,当 RegionSevrer 有异常的时候,通过回

调的形式通知 Master RegionServer 上下线的信息

通过 Zoopkeeper 存储元数据的统一入口地址

3)Hmaster

master 节点的主要职责如下:

为 RegionServer 分配 Region

维护整个集群的负载均衡

维护集群的元数据信息

发现失效的 Region,并将失效的 Region 分配到正常的 RegionServer 上

当 RegionSever 失效的时候,协调对应 Hlog 的拆分

4)HregionServer

HregionServer 直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:

管理 master 为其分配的 Region

处理来自客户端的读写请求

负责和底层 HDFS 的交互,存储数据到 HDFS

负责 Region 变大以后的拆分

负责 Storefile 的合并工作

5)HDFS

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

HDFS)的支持,具体功能概括如下:

提供元数据和表数据的底层分布式存储服务

数据多副本,保证的高可靠和高可用性

1.3 HBase 中的角色

1.3.1 HMaster

功能

1.监控 RegionServer

2.处理 RegionServer 故障转移

3.处理元数据的变更

4.处理 region 的分配或转移

5.在空闲时间进行数据的负载均衡

6.通过 Zookeeper 发布自己的位置给客户端

1.3.2 RegionServer

功能

1.负责存储 HBase 的实际数据

2.处理分配给它的 Region

3.刷新缓存到 HDFS

4.维护 Hlog

5.执行压缩

6.负责处理 Region 分片

1.2.3 其他组件

1.Write-Ahead logs

HBase 的修改记录,当对 HBase 读写数据的时候,数据不是直接写进磁盘,它会在内

存中保留一段时间(时间以及数据量阈值可以设定)。但把数据保存在内存中可能有更高的

概率引起数据丢失,为了解决这个问题,数据会先写在一个叫做 Write-Ahead logfile 的文件

中,然后再写入内存中。所以在系统出现故障的时候,数据可以通过这个日志文件重建。

2.Region

Hbase 表的分片,HBase 表会根据 RowKey值被切分成不同的 region 存储在 RegionServer

中,在一个 RegionServer 中可以有多个不同的 region。

3.Store

HFile 存储在 Store 中,一个 Store 对应 HBase 表中的一个列族。

4.MemStore

顾名思义,就是内存存储,位于内存中,用来保存当前的数据操作,所以当数据保存在

WAL 中之后,RegsionServer 会在内存中存储键值对。

5.HFile

这是在磁盘上保存原始数据的实际的物理文件,是实际的存储文件。StoreFile 是以 Hfile

的形式存储在 HDFS 的。

二、HBase Shell 操作

2.1 基本操作

1.进入 HBase 客户端命令行

[atguigu@hadoop102 hbase]$ bin/hbase shell 

2.查看帮助命令

hbase(main):001:0> help 

3.查看当前数据库中有哪些表

hbase(main):002:0> list 

3.2 表的操作

1.创建表

hbase(main):002:0> create 'student','info' 

2.插入数据到表

hbase(main):003:0> put 'student','1001','info:sex','male'
hbase(main):004:0> put 'student','1001','info:age','18'
hbase(main):005:0> put 'student','1002','info:name','Janna'
hbase(main):006:0> put 'student','1002','info:sex','female'
hbase(main):007:0> put 'student','1002','info:age','20' 

3.扫描查看表数据

hbase(main):008:0> scan 'student'
hbase(main):009:0> scan 'student',{STARTROW => '1001', STOPROW =>
'1001'}
hbase(main):010:0> scan 'student',{STARTROW => '1001'} 

4.查看表结构

hbase(main):011:0> describe ‘student’ 

5.更新指定字段的数据

hbase(main):012:0> put 'student','1001','info:name','Nick'
hbase(main):013:0> put 'student','1001','info:age','100' 

6.查看“指定行”或“指定列族:列”的数据

hbase(main):014:0> get 'student','1001'
hbase(main):015:0> get 'student','1001','info:name' 

7.统计表数据行数

hbase(main):021:0> count 'student' 

8.删除数据

删除某 rowkey 的全部数据:

hbase(main):016:0> deleteall 'student','1001' 

删除某 rowkey 的某一列数据:

hbase(main):017:0> delete 'student','1002','info:sex' 

9.清空表数据

hbase(main):018:0> truncate 'student' 

提示:清空表的操作顺序为先 disable,然后再 truncate。

10.删除表

首先需要先让该表为 disable 状态:

hbase(main):019:0> disable 'student' 

然后才能 drop 这个表:

hbase(main):020:0> drop 'student'
提示:如果直接 drop 表,会报错:ERROR: Table student is enabled. Disable it first. 

11.变更表信息

将 info 列族中的数据存放 3 个版本:

hbase(main):022:0> alter 'student',{NAME=>'info',VERSIONS=>3}
hbase(main):022:0> get
'student','1001',{COLUMN=>'info:name',VERSIONS=>3}

hbase查看表结构_HBase简介和基本命令相关推荐

  1. hbase查看表结构_HBase

    HBase 是一种分布式.可扩展.支持海量数据存储的NoSQL 数据库. 逻辑结构 物理存储结构 数据模型 逻辑上,HBase的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列.HBase的 ...

  2. hbase查看表结构_HBase语法

    一.HBase的DDL语法 1.    help ①help :查看所有的hbase的shell命令 ②help 'cmd' :寻求指定命令的使用方法 e.g. help 'create_namesp ...

  3. hbase查看表结构_HBase 与Hive的集成

    HBase与Hive的对比 Hive 数据仓库 Hive的本质其实就相当于将HDFS中已经存储的文件在Mysql中做了一个双射关系,以方便使用HQL去管理查询. 用于数据分析.清洗 Hive适用于离线 ...

  4. hbase查看表结构_HBase 常用 Shell 命令手册

    HBase 是一个开源的分布式非关系型数据库,在大数据行业中应用很广泛.Google 三篇论文奠定了大数据的理论基础,其中 HBase 就可以看做是 BigTable 的实现,用来存储大规模的数据.H ...

  5. hbase查看表结构_HBase基本使用之DDL学习

    先将服务启动 hbase自带了shell命令行,我们使用下 在hbase目录下执行 bin/hbase 有很多说明 进入客户端 bin/hbase shell 有个提示:如果shell要删除命令,需要 ...

  6. MySQL查看表结构的实际操作命令简介

    以下的文章主要是对MySQL查看表结构的实际操作命令的实际操作步骤的描述,下面就是其具体方案的详细解析,希望在你今后的MySQL查看表结构的实际操作命令学习中会在所帮助.以下就是正文的主要内容描述. ...

  7. hive表信息查询:查看表结构、表操作等--转

    原文地址:http://www.aboutyun.com/forum.PHP?mod=viewthread&tid=8590&highlight=Hive 问题导读: 1.如何查看hi ...

  8. hive表信息查询:查看表结构、表操作、建表语句

    问题导读: 1.如何查看hive表结构? 2.如何查看表结构信息? 3.如何查看分区信息? 4.哪个命令可以模糊搜索表 28.怎么查询创建表语句 1.hive模糊搜索表 show tables lik ...

  9. hive表信息查询:查看表结构、表操作等

    转自:http://www.aboutyun.com/forum.php?mod=viewthread&tid=8590&highlight=hive 问题导读: 1.如何查看hive ...

最新文章

  1. Visual C++ 确定要使用的链接方法
  2. 如何用SendMessage模拟某一按钮的点击事件
  3. sysbench安装和使用(亲测)
  4. Java Spring研究之initHandlerMappings - MavenSandbox debug
  5. Mysql常用语法总结
  6. PHP环境 PDOException PDOException: could not find driver
  7. 使用Kotlin的Android CoordinatorLayout
  8. NoSQL 数据库比较
  9. 爱心打印函数(基于EasyX图形库)
  10. DataX同步离线数据基础使用教程
  11. 文本表达:解决BERT中的各向异性方法总结
  12. JAVA 方法知识总结
  13. 类比 -高速缓存Cache/内存/磁盘读写速度类比
  14. 百家讲坛-《老子智慧与现代爱情婚姻》
  15. 网易有数永久免费开放BI能力 普惠让技术更有温度
  16. 游戏服务器没有响应怎么回事,求助!!!为什么我进不了游戏!!!
  17. 基于Win32框架的OpenGL程序
  18. 游戏开发/游戏制作/游戏生成 , godot
  19. 及时输出_《奇葩说》大王逆袭开挂:真正会学习的人,都拥有输出这条管道
  20. iOS App怎么上架到苹果TestFlight?

热门文章

  1. ios 学习之 NSPredicate 模糊、精确、查询
  2. NIST随机数检测软件使用
  3. Pond Cascade Gym - 101670B 解题报告
  4. 【散文】 岁月留痕遇好友
  5. 熊猫烧香作者李俊的个人简历
  6. 46家著名公司的技术类笔试真题
  7. 外企文化大比较 德企、日企里的人情真相
  8. Spring AOP 切面记录操作日志
  9. Java + lua = 王炸!!
  10. 橙汁的面试经验汇总(百度、平安壹钱包、诺瓦、快手、bigo、海信、奇安信、小米、迈瑞医疗、顺丰、网易互娱、多益游戏、京东、穆迪)