Hadoop中HBase命令行操作

HBase提供了Shell命令行,功能类似于Oracle、MySQL等关系库的SQL Plus窗口那样,用户可以通过命令行模式进行创建表、新增和更新数据,以及删除表的操作。

采用的底层存储为HDFS。使用Hbase客户端操作,执行查看Hbase版本、状态、查看帮助命令。创建表、修改表、插入数据、删除数据、查询数据,清空表、退出Hbase命令行、停止HDFS服务。

1.启动HDFS服务进程和hbase服务进程,进入MoBaXterm

切换用户

root@hadoop00 \~# su - hadoop

启动hdfs

hadoop@hadoop00 \~$ start-dfs.sh

启动HBase

hadoop@hadoop00 \~$ start-hbase.sh

查看进程

hadoop@hadoop00 \~$ jps

2.进入hbase 命令行客户端

hadoop@hadoop00 \~$ hbase shell

3.利用help查看Hbase有哪些命令,部分截图如下

hbase(main):001:0> help

4.查看某一组命令下的所有命令的简介和简单示范,如查看ddl。部分截图如下

hbase(main):003:0> help 'ddl'

5.查看某个命令的详细使用,如create。部分截图如下

hbase(main):004:0> help create

6.使用general组中的命令。查看集群的状态

hbase(main):005:0> status

7.使用general组中的命令。查看集群的版本

hbase(main):005:0> version

8.使用general组中的命令。查看当前登录用户的角色信息

hbase(main):005:0> whoami

9.使用general组中的命令。查看对表进行操作的基本命令。部分截图如下

hbase(main):004:0> table_help

10.使用ddl组中的命令。创建表。格式为:# create '表名', '列族1', '列族2'...

创建person表,列族为name和info

hbase(main):005:0> create 'person','name','info'

11.上列也可以写成如下格式:create 'person',{NAME=>'name' },{NAME=>'info'}

12.打开桌面的谷歌浏览器,输入http://hadoop00:50070出现界面后,选中菜单最后一项,选择"Browse the file system"

13.出现如下界面,选择

理解其文件结构参考:

https://blog.csdn.net/h1025372645/article/details/97814312

https://www.cnblogs.com/zhangwuji/p/9160301.html

14.出现如下界面,此路径下即为存储表person的路径(/hbase/data/default/)

15.选择person,出现如下界面,红框处即为存储数据的region

16.选择进入红框圈选的位置,出现如下图,可以看到,info和name即是我们创建表所指定列族存储的位置

17.使用ddl组中的命令。创建表时指定列族版本,指定列族是否常驻内存。创建person1表,列族为name版本为4和info常驻内存

hbase(main):004:0> create 'person1',{NAME=>'name', VERSIONS=>4 },{NAME=>'info',IN_MEMORY=>'true'}

18.使用ddl组中的命令。查看数据库有哪些表

hbase(main):001:0> list

19.使用ddl组中的命令。查看表person1的属性信息,命令格式使用describe'person1' 或desc 'person1'。# 其中的属性的意义:NAME:列族名;VERSIONS:最大版 本号;MIN_VERSIONS:最小版本号;TTL(Time To Live):存活时间;IN_MEMORY:是否开启缓存,默认false;BLOCKCACHE:读缓存是否开启,默认开启。

hbase(main):001:0> desc 'person1'

20.使用ddl组中的命令。修改表,增加列族。语法格式:alter 'table_name','add_family' 或者alter 'table_name', {NAME => 'add_family'} 当然,新增加的列可以设置属性,比如alter 'table_name', {NAME => 'add_family', VERSIONS => 3}设置表person1增加列族postion,版本为4

复制代码
alter 'person1', {NAME => 'position', VERSIONS => 4}
复制代码
alter 'person', {NAME => 'name', VERSIONS => 3}

21.使用ddl组中的命令,查看表person1的属性信息。部分截图如下

复制代码
desc 'person1'

22.使用ddl组中的命令。修改表,删除列族。语法格式:alter 'table_name', {NAME=> 'delete_family', METHOD => 'delete'} 或者 alter 'table_name', 'delete' => 'delete_family' 设置表person1删除列族postion。

复制代码
alter 'person1', 'delete' => 'position'

23.使用ddl组中的命令。禁用表语法为disable 'table_name'

复制代码
disable 'person1'

24.使用ddl组中的命令。禁用表语法为is_disabled 'table_name'

复制代码
is_disabled 'person1'

25.使用ddl组中的命令。启用表语法为enable 'table_name'

复制代码
enable 'person1'

26.使用ddl组中的命令。查看表是否启用表语法为is enabled 'table_name'

is_enabled 'person1'

27.使用ddl组中的命令。删除表语法为drop 'table_name';在删除表前,需要先禁用表。

复制代码
disable 'person1'
复制代码
drop 'person1'

28.使用dml组中的命令。插入数据语法为put '表名','rowkey','列族名:列名','值'。

如插入表person,行键为0001,列族name的列名为firstname,值为Jed

复制代码
put 'person','0001','name:firstname', 'Jed'

29.使用dml组中的命令。插入数据语法为put '表名','rowkey','列族名:列名','值'。

如插入表person,行键为0001,列族info的列名为hobby,值为Swim

复制代码
put 'person','0001','info:hobby', 'Swim'
复制代码
put 'person','0001','name:firstname', 'Tom'
复制代码
put 'person','0001','name:firstname', 'Jim'

30.使用dml组中的命令,根据行键查询某行。语法为get '表名','rowkey'。

如查询person,行键为0001。由于name:firstname列存储了三个版本,默认显示最新的值

复制代码
get 'person','0001'

31.使用dml组中的命令,根据行键,指定列名查询某行。语法为get '表名','rowkey','列族:列名'。如查询person,行键为0001,列为name:firstname。由于name:firstname列存储了三个版本,默认显示最新的值

Command 025:

复制代码
get 'person', '0001','name:firstname'

32.使用dml组中的命令,查询person表中,rowkey为'0001'的这一行,只显示

name:firstname这一列,显示最新的3个版本

Command 026:

复制代码
get 'person', '0001', {COLUMNS => 'name:firstname', VERSIONS => 3}

33.使用dml组中的命令,扫描person表

Command 027:

复制代码
scan 'person'

34.使用dml组中的命令,扫描person表时指定列族

Command 028:

复制代码
scan 'person', {COLUMNS => 'name'}

35.使用dml组中的命令,扫描person表时指定列族,并限定显示最新的2个版本

Command 029:

复制代码
scan 'person', {COLUMNS => 'name',VERSIONS => 2}

36.使用dml组中的命令,删除数据,语法格式为:delete 'table_name', 'rowkey','family:column'。如删除person表中行键为0001,列名为info:hobby对应的值。

Command 030:

复制代码
delete 'person', '0001', 'info:hobby'

37.使用dml组中的命令,扫描person表。可以看到info:hobby数据已经被删除。

Command 031:

复制代码
scan 'person'

38.使用dml组中的命令,查询person表中列族为name,行键范围是[0001, 0003)的数据

Command 032:

复制代码
scan 'person', {COLUMNS => 'name', STARTROW => '0001', ENDROW => '0003'}

39.使用dml组中的命令,查询查询person表中row key以00字符开头的数据

Command 033:

复制代码
scan 'person',{FILTER=>"PrefixFilter('00')"}

40.使用dml组中的命令,清空表数据语法为:truncate 'table_name'

Command 034:

复制代码
truncate 'person'

41.退出Hbase命令行

Command 035:

复制代码
exit
相关推荐
xushichang123_28 分钟前
如何观看 2026 亚马逊云科技中国峰会全场主题演讲与技术分论坛内容?
大数据·人工智能
招财小梗1 小时前
AI矩阵获客,品牌连锁落地有啥方案?
大数据·人工智能·矩阵
黎子越1 小时前
大模型基础名词概念
大数据
zandy10111 小时前
主流 AI Agent搜索Skill推荐及高阶选型指南
大数据·人工智能
跨境卫士苏苏1 小时前
2026年做跨境电商,TikTok美区半托管这3个品类正在严查,第2个很多新手还在铺货
大数据·人工智能·跨境电商·营销策略
GIS数据转换器1 小时前
村镇无人机物流配送与跨域监测一体化平台
大数据·运维·人工智能·科技·无人机
知识燃料2 小时前
企业技术决策者落地 AI Agent 体系,AWS 中国峰会有哪些战略与工程内容可看?
大数据·人工智能
TDengine (老段)2 小时前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
guwentian11 小时前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
赤土 炙焱14 小时前
hiveserver2启动失败,磁盘满了
hive·hadoop