IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> HBase相关shell操作 -> 正文阅读

[大数据]HBase相关shell操作

HBase相关shell操作

我们可以使用shell的方式维护和管理HBase。例如:执行建表语句、执行增删改查操作等。

进入HBase客户端操作界面

/bin/hbase shell

查看帮助命令

help

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

list

创建一张表

# 创建user表,包含info、data两个列族
create 'user','info','data'
# 或者
create 'user',{NAME => 'info', VERSIONS => '3'},{NAME => 'data'}

添加数据操作

# 向user表中插入信息,row key为rk0001,列族info中添加name列标示符,值为zhangsan
put 'user','rk0001','info:name','zhangsan'

# 向user表中插入信息,row key为rk0001,列族info中添加gender列标示符,值为female
put 'user','rk0001','info:gender','female'

# 向user表中插入信息,row key为rk0001,列族info中添加age列标示符,值为20
put 'user','rk0001','info:age',20

# 向user表中插入信息,row key为rk0001,列族data中添加pic列标示符,值为picture
put 'user','rk0001','data:pic','picture'

查询数据操作

# 1、通过rowkey进行查询
## 获取user表中row key为rk0001的所有信息
get 'user','rk0001'

# 2、查看rowkey下面的某个列族的信息
## 获取user表中row key为rk0001,info列族的所有信息
get 'user','rk0001','info'

# 3、查看rowkey指定列族指定字段的值
## 获取user表中row key为rk0001,info列族的name、age列标示符的信息
get 'user','rk0001','info:name','info:age'

# 4、查看rowkey指定多个列族的信息
## 获取user表中row key为rk0001,info、data列族的信息
get 'user','rk0001','info','data'
## 或者
get 'user','rk0001',{COLUMN => ['info', 'data']}
## 或者
get 'user','rk0001',{COLUMN => ['info:name', 'data:pic']}

# 5、指定rowkey与列值查询
## 获取user表中row key为rk0001,cell的值为zhangsan的信息
get 'user','rk0001',{FILTER => "ValueFilter(=,'binary:zhangsan')"}

# 6、查询所有数据 : 查询user表中的所有信息
scan 'user'
scan 'user',{FORMATTER => 'toString'}
scan 'user',{LIMIT => 3, FORMATTER => 'toString'}

# 7、列族查询:  查询user表中列族为info的信息
scan 'user',{COLUMNS => 'info'}
scan 'user',{COLUMNS => 'info', RAW => true, VERSIONS => 5}
scan 'user',{COLUMNS => 'info', RAW => true, VERSIONS => 3}

# 8、多列族查询: 查询user表中列族为info和data的信息
scan 'user',{COLUMNS => ['info', 'data']}
scan 'user',{COLUMNS => ['info:name', 'data:pic']}

# 9、指定列族与某个列名查询
## 查询user表中列族为info、列标示符为name的信息
scan 'user',{COLUMNS => 'info:name'}

# 10、指定列族与列名以及限定版本查询
## 查询user表中列族为info、列标示符为name的信息,并且版本最新的5个
scan 'user',{COLUMNS => 'info:name', VERSIONS => 5}

# 11、指定多个列族与按照数据值模糊查询
## 查询user表中列族为info和data且列标示符中含有a字符的信息
scan 'user',{COLUMNS => ['info', 'data'], FILTER => "(QualifierFilter(=,'substring:a'))"}

# 12、rowkey的范围值查询
## 查询user表中列族为info,rk范围是[rk0001, rk0003)的数据
scan 'user',{COLUMNS => 'info',STARTROW => 'rk0001', ENDROW => 'rk0003'}

# 13、指定rowkey模糊查询
## 查询user表中row key以rk字符开头的
scan 'user',{FILTER => "PrefixFilter('rk')"}

# 14、指定数据范围值查询
## 查询user表中指定范围的数据
scan 'user',{TIMERANGE => [1392368783980, 1392380169184]}

过滤器的查询地址:
http://hbase.apache.org/2.2/devapidocs/index.html

更新数据操作

# 1、更新数据值(操作同插入操作一模一样,只不过有数据就更新,没数据就添加)
# 2、更新版本号
## 将user表的f1列族版本号改为5
alter 'user',NAME => 'info', VERSIONS => 5

删除数据以及删除操作

# 1、指定rowkey以及列名进行删除
## 删除user表row key为rk0001,列标示符为info:name的数据
delete 'user', 'rk0001', 'info:name'

# 2、指定rowkey,删除一整行数据
delete 'user','rk0001'

# 3、删除一个列族
alter 'user',NAME => 'info', METHOD => 'delete'
## 或
alter 'user', 'delete' => 'info'

# 4、清空表数据
truncate 'user'

# 5、删除表
## 首先需要让该表为disable状态
disable 'user'
## 然后drop表
drop 'user'

注意:

1.deleteall是在HBase 2.0版本后出现的,在2.0版本之前,只需要使用delete这个命令即可完成所有的数据删除工作

2.delete删除数据的时候,只会删除最新版本的数据,而deleteall直接将对应的数据的所有历史版本全部删除

3.如果不disable直接drop表,会报错:Drop the named table. Table must first be disabled.

统计一张表有多少行数据

count 'user'

HBase高级Shell管理命令

# 1) status 显示服务器状态
status 'node1'

# 2) whoami 显示HBase当前用户
whoami

# 3) list 显示当前所有的表

# 4) count 统计指定表的记录数
count 'user'

# 5) describe 展示表结构信息

# 6) exists 检查表是否存在,适用于表特别多的情况

# 7) is_enabled、is_disabled 检查表是否启用或禁用

# 8) alter 该命令可以改变表和列族的模式
## 为当前表增加列族
alter 'user', NAME => 'CF2', VERSIONS => 2
## 为当前表删除列族
alter 'user', 'delete' => 'CF2'

# 9) disable/enable 禁用/启用一张表

# 10) drop 删除一张表,记得在删除表之前必须先禁用
# 11) truncate 禁用表-删除表-创建表
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-15 15:56:05  更:2021-11-15 15:57:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:51:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码