HBase 快速学习 笔记
侧边栏壁纸
  • 累计撰写 26 篇文章
  • 累计收到 33 条评论

HBase 快速学习 笔记

残月
2023-12-27 / 0 评论 / 58 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年01月03日,已超过397天没有更新,若内容或图片失效,请留言反馈。

概述

特性

Hbase是一种NoSQL数据库,这意味着它不像传统的RDBMS数据库那样支持SQL作为查询语言。Hbase是一种分布式存储的数据库,技术上来讲,它更像是分布式存储而不是分布式数据库,它缺少很多RDBMS系统的特性,比如列类型,辅助索引,触发器,和高级查询语言等待。那Hbase有什么特性呢?如下:

  • 强读写一致,但是不是“最终一致性”的数据存储,这使得它非常适合高速的计算聚合
  • 自动分片,通过Region分散在集群中,当行数增长的时候,Region也会自
  • 动的切分和再分配
  • 自动的故障转移
  • Hadoop/HDFS集成,和HDFS开箱即用,不用太麻烦的衔接
  • 丰富的“简洁,高效”APIThrift/REST APIava API
  • 块缓存,布隆过滤器,可以高效的列查询优化
  • 操作管理,Hbase提供了内置的web界面来操作,还可以监控JMX指标

什么时候用Hbase?

Hbase不适合解决所有的问题:

  • 首先数据库量要足够多,如果有十亿及百亿行数据,那么Hbase是一个很好* 的选项,如果只有几百万行甚至不到的数据量,RDBMS是一个很好的选择。因为数据量小的话,真正能工作的机器量少,剩余的机器都处于空闲的状态
  • 其次,如果你不需要辅助索引,静态类型的列,事务等特性,一个已经用RDBMS的系统想要切换到Hbase,则需要重新设计系统。
  • 最后,保证硬件资源足够,每个HDFS集群在少于5个节点的时候,都不能表现的很好。因为HDFS默认的复制数量是3,再加上一个NameNode

Hbase在单机环境也能运行,但是请在开发环境的时候使用。

架构

lqn9wudp.png
lqn9x3uo.png

命令

创建命名空间

create_namespace

create_namespace "命名空间"

lqx4lccl.png

创建表

create

create "表名","列蔟"

lqnfauvq.png

namespace create

这里命名空间需要提前创建好

create "命名空间:表名","列蔟"

插入数据

put

put '表名','行标签','列蔟:列名',"数据"

这里行标签要唯一,要不然原数据会被覆盖。
lqnfa9e7.png

获取数据

get

get '表名','行标签'[,'列蔟:列名'] [条件]

通过行标签进行查找数据

lqnfcucb.png
带上 '列蔟:列名'查询
lqnfdftv.png

scan

scan '表名' [条件]

lqnfgcbv.png

表行数

count

count '表名' [条件]

lqnfnc7o.png

表数据删除

delete

delete '表名','行标签','列蔟:列名' [条件]

删除列

lqnfwh8k.png

deleteall

deleteall '表名','行标签' [条件]

删除行

lqnfxmoj.png

truncate

truncate '表名'

清除表数据(类似删除表重新创建,配置会丢失)
lqng0oc4.png

表删除

delete

drop '表名'

注意:删表需要前置操作

  • disable '表名'

lqng8f5b.png

lqng89r0.png

参考文章

  1. https://hbase.apache.org/
  2. https://www.cnblogs.com/guohu/p/13138868.html
  3. https://www.bilibili.com/video/BV1fU4y1F7V8
0

评论 (0)

取消