当前位置: 首页 > news >正文

【HBASE】Hbase的Shell操作

文章目录

  • 任务
  • 1、基本操作
    • 1.1 进入客户端
    • 1.2 namespace
    • 1.3 DDL
    • 1.4 DML


任务

  1. 搭建分布式HBASE集群
  2. 学会使用基本的shell命令,完成数据增删改查的操作

1、基本操作

1.1 进入客户端

在这之前已经配置好环境变量

[wzy@hadoop102 hbase]$ hbase shell

1.2 namespace

  1. 创建命名空间
hbase:001:0> create_namespace 'bigdata'
  1. 查看所有的命名空间
hbase:002:0> list_namespace

在这里插入图片描述

1.3 DDL

在这里插入图片描述
以网上的一个学生成绩表的例子来演示hbase的用法。这里grad对于表来说是一个只有它自己的列族,course对于表来说是一个有两个列的列族,这个列族由两个列组成math和art,当然我们可以根据我们的需要在course中建立更多的列族,如computer,physics等相应的列添加入course列族。

  1. 建立一个表scores,有两个列族grad和course
hbase:003:0> create 'bigdata:scores','grad','course'
  1. 查看所有表名
hbase:004:0> list
  1. 查看表的详情
hbase:005:0> describe 'bigdata:scores'

在这里插入图片描述
4.修改表

  • 增加列族和修改信息都使用覆盖的方法
hbase:006:0> alter 'bigdata:scores',{NAME=>'grad',VERSIONS=>3}
  • 删除信息使用特殊的语法
alter "bigdata:scores",'delete'=>'grad'

5.删除表
shell中删除表,需要将表格设置为不可用

disable 'bigdata:scores'
drop 'bigdata:scores'

1.4 DML

  1. 写入数据
put 'scores','Tom','grade:','5'
put 'scores','Tom','course:math','97'
put 'scores','Tom','course:art','87'
put 'scores','Jim','grade:','4'
put 'scores','Jim','course:','89'
put 'scores','Jim','course:','80'

put命令比较简单,只有这一种用法:

hbase> put 't1', 'r1', 'c1', 'value', 'ts1' 

t1指表名,r1指行键名,c1指列名,value指单元格值。ts1指时间戳,一般都省略掉了。
如果重复写入多个rowkey,相同列的数据,会写入多个版本进行覆盖。
在这里插入图片描述
2. 读取数据

  • 根据键值查询数据
get 'scores','Jim' 
get 'scores','Jim','grade' 

可能你就发现规律了,HBase的shell操作,一个大概顺序就是操作关键词后跟表名,行名,列名这样的一个顺序,如果有其他条件再用花括号加上。
在这里插入图片描述

  • 扫描所有数据
scan 'scores'

也可以指定一些修饰词:TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,or COLUMNS。没任何修饰词,就是上边例句,就会显示所有数据行。
在这里插入图片描述
3. 删除数据

  • delete
    delete表示删除一个版本的数据,即为1个cell,不填写版本默认删除最新的版本。
delete 'scores','Jim','grade' 
  • deleteall
    删除所有版本的数据,即为当前行当前列的多个cell。(执行这个命令不会删除数据,而是标记为delete,只有在清理磁盘的时候才会删除
deleteall 'scores','Jim','grade' 

相关文章:

  • Visual Studio Code下C/C++开发环境的配置及使用
  • 昨天
  • 【Redis】Redis最佳实践:键值设计
  • OpenHD改造实现廉价高清数字图传(树莓派+PC)—(六)OSD和视频画面整合显示
  • 从0开始学c语言-33-动态内存管理
  • java详解队列
  • springboot - 2.7.3版本 - (八)ELK整合Kafka
  • uniCloud开发公众号:一、接收、解析、组装xml消息
  • YOLO系列目标检测算法-YOLOv1
  • JavaScript高级,ES6 笔记 第三天
  • 【雷达图】R语言绘制雷达图(ggradar),NBA季后赛数据为例
  • 机器学习笔记 - 在QT/PyTorch/C++ 中加载 TORCHSCRIPT 模型
  • redis 技术分享
  • 怎么让面试官喜欢你?
  • 深度学习模型理解-CNN-手写数据字代码
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【5+】跨webview多页面 触发事件(二)
  • Akka系列(七):Actor持久化之Akka persistence
  • CAP理论的例子讲解
  • es6
  • ES6系列(二)变量的解构赋值
  • JavaScript的使用你知道几种?(上)
  • JavaScript设计模式之工厂模式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java多线程(4):使用线程池执行定时任务
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • sublime配置文件
  • Tornado学习笔记(1)
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 开源地图数据可视化库——mapnik
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 新版博客前端前瞻
  • 一、python与pycharm的安装
  • 一起参Ember.js讨论、问答社区。
  • 云大使推广中的常见热门问题
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • #、%和$符号在OGNL表达式中经常出现
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (30)数组元素和与数字和的绝对差
  • (4)(4.6) Triducer
  • (8)STL算法之替换
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (补)B+树一些思想
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (四)linux文件内容查看
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (一)为什么要选择C++
  • (转)jdk与jre的区别