首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >只知道MySQL?那你应该来看看HBase

只知道MySQL?那你应该来看看HBase

作者头像
Lvshen
发布2022-05-05 16:38:04
发布2022-05-05 16:38:04
44200
代码可运行
举报
运行总次数:0
代码可运行

什么是HBase

HBase是一种非关系型的,分布式的,海量存储数据库。可用于大数据分析,如日志分析。来看看官网解释:

❝Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. Use Apache HBase™ when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. Apache HBase is an open-source, distributed, versioned, non-relational database modeled after Google's Bigtable: A Distributed Storage System for Structured Data by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, Apache HBase provides Bigtable-like capabilities on top of Hadoop and HDFS. ❞

HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库,HBase基于列的而不是基于行的模式。

与关系型数据库的区别

HBase是非关系型数据库,那么与关系型数据库(如MySQL)有什么区别呢,我们来看看他们的区别:

「HBase」

RDBMS

类似于 Hadoop 的分布式集群,硬件成本低廉

硬件架构

传统的多核系统,硬件成本昂贵

由软件架构实现,由于由多个节点组成,所以不担心一点或几点宕机

容错性

一般需要额外硬件设备实现 HA 机制

PB

数据库大小

GB、TB

稀疏的、分布的多维的 Map

数据排布方式

以行和列组织

Bytes

数据类型

丰富的数据类型

ACID 只支持单个 Row 级别

事物支持

全面的 ACID 支持,对 Row 和表

只支持 Java API (除非与其他框架一起使用,如 Phoenix、Hive)

查询语言

SQL

只支持 Row-key,除非与其他技术一起应用,如 Phoenix、Hive

索引

支持

百万查询/每秒

吞吐量

数千查询/每秒

由此可见HBase的性能之强。

数据存储示例

如果是关系型数据库,我们一般是这么存储的:

ID

密码

时间戳

1

111

20200719

2

222

20200720

换成Hbase,我们是这么存储的:

Row-Key

Value(CF、Qualifier、Version)

1

info{'姓': '张','名':'三'}pwd{'密码': '111'}

2

Info{'姓': '李','名':'四'}pwd{'密码': '222'}

看出区别了么。

HBase部署

文件目录

HBase目录如下:

HBase目录

配置hbase-site.xml

代码语言:javascript
代码运行次数:0
运行
复制
vi ~/support/hbase/conf/hbase-site.xml
<configuration>
 <property>
  <name>hbase.rootdir</name>
  <value>file:///home/log4x/data/hbase</value>
 </property>
    <property>
  <name>hbase.cluster.distrubuted</name>
  <value>true</value>
 </property>
 <property>
  <name>hbase.zookeeper.quorum</name>
  <value>10.174.26.145</value>
 </property>
 <property>
  <name>hbase.zookeeper.property.clientPort</name>
  <value>2181</value>
 </property>
 <property>
  <name>hbase.tmp.dir</name>
  <value>/home/log4x/logs/hbase/tmp</value>
 </property>
</configuration>

在这个配置文件中,我们需要配置Zookeeper的地址,配置data的目录,配置tmp的目录。

配置hbase-env.sh

代码语言:javascript
代码运行次数:0
运行
复制
vi ~/support/hbase/conf/hbase-env.sh
export HBASE_MANAGES_ZK=false

我们要禁用Hbase自带的Zookeeper,用统一的Zookeeper管理。

进程启动与数据展示

执行~/support/hbase/bin/start-hbase.sh

jps查看

HBase进程

执行~/support/hbase/bin/hbase shell进入数据库,我们可以看到程序已建好的表:

Hbase表

web页面也能看到:

hbase的web界面

❝这里需要提前创立表空间:cx_log4x ❞

Hbase常用命令(需要进入Hbase shell):

代码语言:javascript
代码运行次数:0
运行
复制
#hbase创建表空间
create_namespace 'cx_log4x'

#列出表明
>list

#统计表的记录条数
> count 'cx_log4x:WEB'

#查看表的数据,使用指定的时间范围和返回10条。
> scan 'cx_log4x:SRV', {LIMIT=>10,TIMERANGE=>[1495953605000,1496385605000]}

#创建表,base指列名,TTL是数据存活时间,单位秒。
> create 'cx_log4x:ESB', {NAME => 'base',VERSIONS => 1, TTL => 7200, COMPRESSION => 'NONE'}

#清空表,清空表数据。
> truncate 'cx_log4x:WEB

上面就是HBase的一个简短的介绍了,欢迎有兴趣的一起交流。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lvshen的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是HBase
  • 与关系型数据库的区别
  • 数据存储示例
  • HBase部署
    • 文件目录
    • 配置hbase-site.xml
    • 配置hbase-env.sh
    • 进程启动与数据展示
    • Hbase常用命令(需要进入Hbase shell):
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档