HBase Shell 操作

这篇具有很好参考价值的文章主要介绍了HBase Shell 操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、基本操作

1.1、进入HBase客户端命令行

前提是先启动hadoop集群和zookeeper集群。

bin/hbase shell

1.2、查看帮助命令

help

HBase Shell 操作,HBase,hbase,数据库

help 查看指定命令的语法规则

查看 list_namespace 的用法(‘记得加单引号’)

help 'list_namespace'

HBase Shell 操作,HBase,hbase,数据库

2、namespace

我们首先查看现在有哪些命名空间 ,使用指令:list_namespace

注意:我的hadoop版本3.3.0,HBase2.4.17,两者兼容性有问题,我们直接使用上面的命令会报错,需要做两点:

1. 确保 hadoop 退出安全模式

hadoop dfsadmin -safemode leave

2. 在hbase-site.xml 中添加下面的配置

<property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
</property>

执行语句 list_namespace 

HBase Shell 操作,HBase,hbase,数据库 

2.1、创建命名空间

 通过 help 查看创建命名空间的用法:

HBase Shell 操作,HBase,hbase,数据库

我们可以看到,我们可以通过两种方式创建 namespace。

 创建命名空间 bigdata 

HBase Shell 操作,HBase,hbase,数据库

3、DDL

3.1、查看表格

list

3.2、创建表格

HBase Shell 操作,HBase,hbase,数据库

案例1

在我们的命名空间 bigdata 下创建一个表格 student 并指定两个列族 info 和 msg

如果不指定命名空间的话也可以,这时候使用的是HBase默认的 default 命名空间。

不指定版本空间的话默认版本空间是1,后续可以修改。

create 'bigdata:student','info','msg'

HBase Shell 操作,HBase,hbase,数据库

 去web端查看:HBase Shell 操作,HBase,hbase,数据库

案例2

同样在命名空间 bigdata 下再创建一个表 person ,指定两个列族 info 和 msg 并指定保留5个历史版本。

每次修改都会将新值追加到版本列表中,同时删除旧版本,以保持每个单元格的版本数不超过创建时指定的值。

create 'bigdata:person',{NAME => 'info',VERSIONS => 5},{NAME => 'msg',VERSIONS => 5}

3.3、查看表的详细信息

describe '命名空间:表名'

HBase Shell 操作,HBase,hbase,数据库

 3.4、修改表

我们在创建表的时候指定的所有列族相关的信息,都可以后续通过 alter 进行修改,包括增加删除列族,这也是为什么说 HBase 是稀疏的,因为这些列族都是可以后续我们一直增加修改的,包括列族下的列,我们到现在还没有创建真正的列,需要的时候再去创建。

3.4.1、增加列族和修改列族

修改列族版本空间

alter 'bigdata:student',NAME => 'info',VERSIONS => 5

增加列族 'info1'

alter 'bigdata:student',NAME => 'info1',VERSIONS => 5
3.4.2、删除列族

两种删除方法:

alter '命名空间:表名',NAME => '列族',METHOD => 'delete'

或者

alter '命名空间:表名','delete' => '列族'

命名空间为 default 命名空间可以省去不写,下面都是如此。

3.5、删除表

HBase中删除表格时必须先标记为 Disable 不可用的,才能再删除。

3.5.1、disable
disable '命名空间:表名'
3.5.2、drop
drop '命名空间:表名'

4、DML

4.1、写入数据

        HBase中写入的数据只能是结构中最底层的 cell (由{rowkey, column Family : column Qualifier, timestamp} 唯一确定的单元)。

学会多用 help 去查看用法:

HBase Shell 操作,HBase,hbase,数据库

语法:

put '命名空间:表名','行号','列族:列名','值'

        其中的行号和列名都是新增数据的时候才增加的,我们在创建表的时候并不需要定义,再次体现了NoSQL数据库的稀疏性。

HBase Shell 操作,HBase,hbase,数据库

 

4.2、读取数据

4.2.1、get

读取某一行的数据

get '命名空间:表名','行号'

也可以进行列的过滤: 

get '命名空间:表名','行号',{COLUMN => '列族:列名'}

限定多列:

get '命名空间:表名','行号',{COLUMN => ['列族:列名','列族:列名','列族:列名'...]}

HBase Shell 操作,HBase,hbase,数据库

 读取多个版本:比如读取6个版本的历史数据(注意:我们读取到的版本数不会操作它维护的版本数,即我们定义时设置的版本数)

get '命名空间:表名','行号',{COLUMN => '列族:列名',VERSIONS => 6}

 HBase Shell 操作,HBase,hbase,数据库

 

4.2.2、scan
扫描整张表

get 只能读取一行数据,我们希望读取多行数据的话就要使用scan了,scan的时候默认读取的是我们最新的版本。

scan '命名空间:表名'

HBase Shell 操作,HBase,hbase,数据库

扫描指定范围

通过指定开始和结束行号来输出指定范围的数据,所以说在HBase中,行号的设计很重要。

注意:STARTROW  到 STOPROW 是左闭右开的

scan '命名空间:表名',{STARTROW => '行号',STOPROW => '行号'}

HBase Shell 操作,HBase,hbase,数据库

4.3、删除数据

删除数据有两个方法:delete deleteall ,前者是删除一个版本的数据,后者是删除所有版本的数据。

4.3.1、delete

delete 默认删除最新的一个版本。

delete '命名空间:表名','列族:列名'
4.3.2、deleteall
deleteall '命名空间:表名','列族:列名'

 文章来源地址https://www.toymoban.com/news/detail-641778.html

到了这里,关于HBase Shell 操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式数据库HBase

    HBase是一个高可靠、高性能、 面向列 、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和把结构化的松散数据。 HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用 廉价计算机集群 处理由超过10亿行数据和数百万列元素组成的数据表。

    2024年02月09日
    浏览(46)
  • 【大数据】分布式数据库HBase

    目录 1.概述 1.1.前言 1.2.数据模型 1.3.列式存储的优势 2.实现原理 2.1.region 2.2.LSM树 2.3.完整读写过程 2.4.master的作用 本文式作者大数据系列专栏中的一篇文章,按照专栏来阅读,循序渐进能更好的理解,专栏地址: https://blog.csdn.net/joker_zjn/category_12631789.html?spm=1001.2014.3001.5482 当

    2024年04月27日
    浏览(32)
  • 使用IDEA连接hbase数据库

     Hbase是安装在另一台LINUX服务器上的,需要本地通过JAVA连接HBase数据库进行操作。由于是第一次接触HBase,过程当中百度了很多资料,也遇到了很多的问题。耗费了不少时间才成功连接上。特记录下过程当中遇到的问题。 JAVA连接HBase代码如下: 首先通过POM将需要的JAR包导入。

    2024年02月03日
    浏览(80)
  • HBase的数据库与HadoopEcosyste

    HBase是一个分布式、可扩展、高性能、高可用性的列式存储系统,基于Google的Bigtable设计。HBase是Hadoop生态系统的一个重要组成部分,与Hadoop HDFS、MapReduce、ZooKeeper等产品密切相关。本文将从以下几个方面进行深入探讨: 背景介绍 核心概念与联系 核心算法原理和具体操作步骤

    2024年02月20日
    浏览(34)
  • 大数据NoSQL数据库HBase集群部署

    目录 1.  简介 2.  安装 1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面 2. 【node1执行】下载HBase安装包 3. 【node1执行】,修改配置文件,修改conf/hbase-env.sh文件 4. 【node1执行】,修改配置文件,修改conf/hbase-site.xml文件 5. 【node1执行】,修改配置文件,修改conf/regi

    2024年02月08日
    浏览(40)
  • HBase的数据库容量规划与优化

    HBase的数据库容量规划与优化 HBase是一个分布式、可扩展、高性能的列式存储系统,基于Google的Bigtable设计。它是Hadoop生态系统的一部分,可以与HDFS、MapReduce、ZooKeeper等组件集成。HBase适用于大规模数据存储和实时数据访问场景,如日志处理、实时统计、搜索引擎等。 在实际

    2024年02月20日
    浏览(33)
  • HBase的数据库安全与权限管理

    HBase是一个分布式、可扩展、高性能的列式存储系统,基于Google的Bigtable设计。它是Hadoop生态系统的一部分,可以与HDFS、MapReduce、ZooKeeper等组件集成。HBase具有高可靠性、高性能和高可扩展性等特点,适用于大规模数据存储和实时数据处理。 在现代企业中,数据安全和权限管

    2024年02月20日
    浏览(34)
  • HBase的数据库备份与恢复策略

    HBase是一个分布式、可扩展、高性能的列式存储系统,基于Google的Bigtable设计。它是Hadoop生态系统的一部分,可以与HDFS、MapReduce、ZooKeeper等组件集成。HBase具有高可用性、高可扩展性和高性能等优势,适用于大规模数据存储和实时数据处理。 在实际应用中,数据备份和恢复是

    2024年02月19日
    浏览(45)
  • 大数据NoSQL数据库HBase集群部署——详细讲解~

    HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。 和Redis一样,HBase是一款KeyValue型存储的数据库。 不过和Redis设计方向不同 Redis设计为少量数据,超快检索 HBase设计为海量数据,快速检索 HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署H

    2024年02月11日
    浏览(36)
  • HBase的数据库设计模式与实践

    HBase是一个分布式、可扩展、高性能的列式存储系统,基于Google的Bigtable设计。它是Hadoop生态系统的一部分,可以与HDFS、MapReduce、ZooKeeper等组件集成。HBase适用于大规模数据存储和实时数据访问的场景,如日志记录、实时数据分析、实时搜索等。 在现实应用中,HBase的数据库设

    2024年02月20日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包