大数据----33.hbase中的shell文件操作

news2024/11/25 15:50:35

HBase的命令行工具,最简单的接口,适合HBase管理使用,可以使用shell命令来查询HBase中数据的详细情况。

注意:如果进入hbase后长时间不操作; 发生hbase自动关闭没有了进程; 原因是内存不够;可以关闭机器;增加内存;虚拟机就扩大内存。

一、数据库操作

1、进入 hbase 客户端、帮助命令

[root@hadoop06 hbase]# bin/hbase shell
[root@hadoop06 hbase]# hbase shell(修改完环境变量)
在这里插入图片描述

注意:他里边所有写的命令不可以删除; 删除必须使用:
ctrl+backspace
shifit+backspace 来删除;
或者使用编辑器编辑好后,然后粘贴出来;

2.查看帮助命令

hbase(main):001:0> help
在这里插入图片描述

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

hbase(main):002:0> list
在这里插入图片描述

4.查看所有库 namespace 也称之为 命名空间

hbase(main):003:0> list_namespace

在这里插入图片描述
hbase 存放的是 一些元数据,一般不要做什么修改,default 是默认库

创建 namespace

在这里插入图片描述
创建数据库命名空间也可以设置一些属性
hbase(main):003:0> create_namespace ‘mydb01’,{‘createtime’=>‘2023-12-13’,‘createby’=>‘db01’}
在这里插入图片描述描述信息的查看:
hbase(main):001:0> describe_namespace ‘mydb01’
在这里插入图片描述
对namespace属性进行修改和增加属性;
1.修改属性
METHOD=>'set‘ 下面就修改mydb01的时间+1天,并增加一个desc 属性为例说明
hbase(main):001:0> alter_namespace ‘mydb01’,{METHOD=>‘set’,‘createTime’=>‘2023-12-14’,‘desc’=>‘hbase test insert’}
在这里插入图片描述
在这里插入图片描述
删除一个属性:METHOD=>'unset‘
hbase(main):006:0> alter_namespace ‘mydb01’,{'METHOD=>‘unset’,NAME=>‘createby’}

删除 namespace
drop_namespace ‘mydb01’
库命名空间里有表,则无法直接删除库,需要先删除表,在进行drop_namespace
在这里插入图片描述

表的基本操作

1、查看 hfc_db 下的表
hbase(main):004:0> list_namespace_tables ‘hfc_db’
在这里插入图片描述
2、查看所有自己创建的表 list
在这里插入图片描述
3、创建表

hbase(main):002:0> create ‘hfc_db:test001’,{NAME=>‘f1’}
在这里插入图片描述
创建表时若不指定库在直接在default下创建表,创建表至少指定一个列族,这里创建了一个名为f1的列族;如果创建表,不指定属性信息,可以进行创建一个表
hbase:001:0> create ‘hfc_db:test2’,‘f1’
hbase:002:0> create ‘hfc_db:test3’,‘f1’,‘f2’

在这里插入图片描述
4、查看表详细信息
hbase(main):002:0> describe ‘hfc_db:test001’
hbase(main):002:0> desc ‘hfc_db:test001’
在这里插入图片描述
blocksize:(BLOCKSIZE => ‘65536’)数据块大小配置优化: blocksize默认是64K
数据块缓存的配置 BLOCKCACHE => ‘true’ 数据块缓存的配置
激进缓存的配置:(IN_MEMORY=> ‘false’)
布隆过滤器: (BLOOMFILTER = > ‘ROW’ )
TTL 生存时间,( TTL => ‘FOREVER’)
压缩:(COMPRESSION => ‘NONE’)
单元时间版本:(VERSIONS => ‘1’)

可以参考:
https://blog.csdn.net/qq_39532946/article/details/77266335

5、表信息修改:此处修改一个列族的版本号

hbase(main):001:0> alter ‘hfc_db:test001’,NAME=>‘f1’,VERSIONS=>‘2’
在这里插入图片描述
在这里插入图片描述
修改多个值
在这里插入图片描述
在这里插入图片描述
6、增加/删除列族
hfc_db:test001 增加列族
alter ‘hfc_db:test001’,‘f3’
在这里插入图片描述

hfc_db:test001 删除列族
alter ‘hfc_db:test001’,‘delete’=>‘f3’
在这里插入图片描述
7、删除表

删除表需要先进行disabkle,在进行drop
hbase:005:0> disable ‘hfc_db:test001’
hbase:001:0> drop ‘hfc_db:test001’
在这里插入图片描述

二、DML 操作

1、创建一个表:在 default 下创建,列族名称是 info
默认情况下他是创建的表都在defalut中;

hbase(main):001:0> create ‘student’,‘info’
在这里插入图片描述
2、插入数据
hbase(main):042:0> put ‘student’,‘1001’,‘info:name’,‘zhangsan’

put 表示要插入/更新数据,stu 是表名称,1001 是 rowkey,插入数据需要指定列族和列:这里的 info是列族,name 是info 下的具体列,’linghc‘ 是这个列rowkey=1001 的值,下面在info这个列族增加两个列sex 和 age
在这里插入图片描述
put ‘stu’,‘1001’,‘info:sex’,‘man’
put ‘stu’,‘1001’,‘info:age’,‘26’
可以给这个列簇中添加数据;
在这里插入图片描述
3.把刚才插入的数据进行查询出来:
get ‘studnet’,‘1001’
在这里插入图片描述
4. 可以继续添加第二个
put ‘student’,‘1002’,‘info:name’,‘renyy’
put ‘student’,‘1002’,‘info:name’,‘renyy’
put ‘student’,‘1002’,‘info:age’,‘24’
在这里插入图片描述
put ‘student’,‘1003’,‘info:name’,‘zhaoliu’
put ‘student’,‘1003’,‘info:sex’,‘woman’
put ‘student’,‘1003’,‘info:age’,‘18’
在这里插入图片描述
可以给相同的列族的某一个行数据增加或减少n列值是可以的,列的个数可以不一样

put ‘student’,‘1004’,‘info:name’,‘linhucong’
put ‘student’,‘1004’,‘info:sex’,‘man’
put ‘student’,‘1004’,‘info:age’,‘28’
put ‘student’,‘1004’,‘info:shcool’,‘huashanpai’
put ‘student’,‘1004’,‘info:teacher’,‘yuebuqun’

在这里插入图片描述
支持按列查询(可以根据列;多列来查询)

hbase(main):018:0> get’student’,‘1004’,‘info:name’,‘info:teacher’
在这里插入图片描述
扫描表数据(整个表)
scan ‘student’
在这里插入图片描述
按rowkey范围扫描 {STARTROW => ‘1001’ ,STOPROW => ‘1003’} :左闭右开,此时只查询到 1002
scan ‘student’,{STARTROW => ‘1001’ ,STOPROW => ‘1003’}
在这里插入图片描述
指定STOPROW 后加!,可以实现左闭右闭
hbase(main):003:0> scan ‘student’,{STARTROW => ‘1001’ ,STOPROW => ‘1004!’}

在这里插入图片描述

##修改数据

5、修改数据直接put 进行覆盖就行

hbase(main):001:0> put ‘student’,‘1001’,‘info:name’,‘dongfangbubai’
在这里插入图片描述
修改数据后,其实只是在原来的基础上增加了一条数据,查询的时候返回了时间戳最新的一个版本,旧版本的数据还在;
这里指定显示了包含最新版本在内的5条历史数据,可以通过时间戳查看

hbase(main):001:0> scan ‘student’,{RAW=>true,VERSIONS=>5}

在这里插入图片描述
desc ‘student’
在这里插入图片描述
VERSIONS => ‘1’ 默认值1.,表示最终只保留最新的一个版本的数据,旧版本的数据在适当的时候会被释放。如果想要保留最新两个版本的数据,可以将某个表的 VERSIONS 设置为 2

alter ‘student’,{NAME=>‘info’,VERSIONS=>2}

删除数据

6、删除数据
delete ‘student’,‘1001’,‘info:name’
其实是删除了当前值得最新版本的数据
在这里插入图片描述
标注:delete 但是数据还是存在的;
scan ‘student’,{RAW=>true,VERSIONS=>5}
在这里插入图片描述
彻底删除数据
deleteall ‘student’,‘1001’,‘info:name’
在这里插入图片描述
dleteall直接将 列族的某一个列直接删了,指定rowkey进行删除整行数据
deleteall ‘student’,‘1004’
直接删除表;数据直接彻底删除表数据,表还在,数据没了
truncate ‘student’

提示:清空表的操作顺序为先disable,然后再truncate。
10.删除表
首先需要先让该表为disable状态:
hbase(main):019:0> disable ‘student’
然后才能drop这个表:
hbase(main):020:0> drop ‘student’

提示:如果直接drop表,会报错:ERROR: Table student is enabled. Disable it first.

在这里插入图片描述

常用命令的总结:

HBase表的操作

这些是关于HBase在表中操作的命令。

create: 创建一个表。
list: 列出HBase的所有表。
disable: 禁用表。
is_disabled: 验证表是否被禁用。
enable: 启用一个表。
is_enabled: 验证表是否已启用。
describe: 提供了一个表的描述。
alter: 改变一个表。
exists: 验证表是否存在。
drop: 从HBase中删除表。
drop_all: 丢弃在命令中给出匹配“regex”的表。
Java Admin API: 在此之前所有的上述命令,Java提供了一个通过API编程来管理实现DDL功能。在这个org.apache.hadoop.hbase.client包中有HBaseAdmin和HTableDescriptor 这两个重要的类提供DDL功能。
关于表的操作包括(创建create,查看表列表list。查看表的详细信息desc,删除表drop,清空表truncate,修改表的定义alter)

HBase表中数据的操作

put: 把指定列在指定的行中单元格的值在一个特定的表。
get: 取行或单元格的内容。
delete: 删除表中的单元格值。
deleteall: 删除给定行的所有单元格。
scan: 扫描并返回表数据。
count: 计数并返回表中的行的数目。
truncate: 禁用,删除和重新创建一个指定的表。
Java client API: 在此之前所有上述命令,Java提供了一个客户端API来实现DML功能,CRUD(创建检索更新删除)操作更多的是通过编程,在org.apache.hadoop.hbase.client包下。 在此包HTable 的 Put和Get是重要的类。
关于数据的操作(增put,删delete,查get + scan, 改==变相的增加)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1325536.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetCode算法—11. 盛最多水的容器

11.给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 难度:中等 ** 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#x…

Deap 框架细节介绍

创建一个 gp.PrimitiveSet 对象&#xff0c;对象名为 MAIN&#xff0c;自变量为 3 pset gp.PrimitiveSet("MAIN", 3) print(pset)<deap.gp.PrimitiveSet object at 0x000001FBE182AB20>gp.py&#xff08;均为产生函数集与节点集&#xff09; PrimitiveSet …

State of PostgreSQL 2023 报告解读

基于 PostgreSQL 内核的时序数据库厂商 Timescale 发布了一年一度的 State of Postgres 2023 报告。 Timescale 介绍 简单先介绍一下 Timescale 这家公司的历史。它最早是提供了一个 PG 的插件&#xff0c;引入了 Hypertable 这个概念&#xff0c;来高效地处理时序数据&…

分享一个项目——Sambert UI 声音克隆

文章目录 前言一、运行ipynb二、数据标注三、训练四、生成总结 前言 原教程视频 项目链接 运行一个ipynb&#xff0c;就可操作 总共四步 1&#xff09;运行ipynb 2&#xff09;数据标注 3&#xff09;训练 4&#xff09;生成 一、运行ipynb 等运行完毕后&#xff0c;获得该…

mt5和mt4交易软件有什么区别?

MetaTrader 4&#xff08;MT4&#xff09;和MetaTrader 5&#xff08;MT5&#xff09;是两种广泛使用的外汇和金融市场交易平台&#xff0c;由MetaQuotes公司开发。尽管它们都是外汇交易的常见选择&#xff0c;但在功能和特性上存在一些区别。以下是MT4和MT5之间的主要区别&…

2023 英特尔On技术创新大会直播 |我感受到的“芯”魅力

文章目录 每日一句正能量前言AI时代&#xff0c;云与PC结合为用户带来更好体验全新处理器&#xff0c;首次引入针对人工智能加速的NPU大模型时代&#xff0c;软硬结合带来更好训练成果后记 每日一句正能量 成长是一条必走的路路上我们伤痛在所难免。 前言 在2023年的英特尔On技…

Go语言HTTP编程入门指南

如果你是一名开发者&#xff0c;那么你一定听说过Go语言。Go&#xff0c;也被称为Golang&#xff0c;是由Google开发的一种静态类型、编译型语言。它的设计理念是“简单、快速、高效”&#xff0c;这使得Go语言在许多方面都表现出色&#xff0c;尤其是在网络编程和并发编程方面…

fastGitHub工具推荐(如果打不开github或者使用很慢可以使用该工具)

目录 一&#xff0c;针对问题二&#xff0c;下载1&#xff0c;github里面下载FastGitHub2&#xff0c;博客上传了下载资源 三&#xff0c;安装使用点击执行文件即可 一&#xff0c;针对问题 当使用github很慢&#xff0c;或者根本打不开的时候&#xff0c;就可以使用该工具 …

HDFS NFS Gateway(环境配置,超级详细!!)

HDFS NFS Gateway简介: ​ HDFS NFS Gateway是Hadoop Distributed File System&#xff08;HDFS&#xff09;中的一个组件&#xff0c;它允许客户端通过NFS&#xff08;Network File System&#xff0c;网络文件系统&#xff09;与HDFS进行交互。具体来说&#xff0c;HDFS NFS…

搭建esp32-idf开发环境并烧入第一个程序

ESP32下载idf并烧入第一个程序 一.官网下载idf安装包二.安装idf三 .测试安装是否成功3.1进入idf控制台3.2 查看安装版本3.3 编译工程 四.下载程序4.1查看所在端口4.2下载程序4.3 监听串口 一.官网下载idf安装包 点击下载 如图&#xff1a; 我们选择离线下载&#xff0c;注意…

行业前景咋样?大厂找我用C++抓取化工产品数据并分析

最近又来活了&#xff0c;天天忙到半夜&#xff0c;但是想想收益还是再坚持坚持。是这么一回事&#xff0c;兄弟所在的化工公司最近想看看某些行业数据&#xff0c;看看市面的同类型产品销量收益等情况是否满足预期效果&#xff0c;也就找到我让我给用爬虫写一个采集并分析的报…

如何实现设备联网控制?

在工业自动化领域&#xff0c;设备联网控制已经成为一种趋势。通过设备联网&#xff0c;可以实现设备的远程监控和管理&#xff0c;提高设备的可用性和效率。本文将介绍如何实现设备联网控制。 设备如何联网&#xff1f; 使用网关联网&#xff1a; HiWoo Box是一款功能强大的…

Sectigo的ov多域名ssl证书

OV多域名SSL证书和EV多域名SSL证书都只支持企事业单位申请&#xff0c;但是EV多域名SSL证书审核比较严格&#xff0c;价格也比较高&#xff0c;OV多域名SSL证书能加密网站传输数据&#xff0c;也能对服务器身份进行认证。对于大多数事业单位&#xff0c;OV多域名SSL证书就能满足…

外贸业务员该如何写好一份有质感的年终总结?内附外贸大神例文

庄子云&#xff1a;人生天地之间&#xff0c;若白驹之过隙&#xff0c;忽然而已... 2023年注定是不平凡的一年&#xff0c;临近年终&#xff0c;你可能听到最多的关键词就是外贸有点难做。不管是因为什么&#xff0c;客观来说2023年的外贸之路确实不太平坦&#xff0c;最近胡塞…

车辆违规开启远光灯检测系统:融合YOLO-MS改进YOLOv8

1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着社会的不断发展和交通工具的普及&#xff0c;车辆违规行为成为了一个严重的问题。其中&#xff0c;车辆违规开启远光灯是一种常见的违规行为&#xff0c;给其…

快速能访问服务器的文件

1、背景 访问ubuntu上的文件 2、方法 python3 -m http.server 8081 --directory /home/ NAS 共享访问协议 — NFS、SMB、FTP、WebDAV 各有何优势&#xff1f;http://1 Ubuntu 搭建文件服务器&#xff08;Nginx&#xff09;

【开源】USB转4路RS422+4路RS485电路板设计

简介 CH348Q是沁恒出品的一款USB转8路串口的芯片&#xff0c;USB为2.0接口&#xff0c;其中4路串口支持流控&#xff0c;另外4路不支持流控&#xff0c;之前介绍过一款开源USB转8路串口的板子&#xff0c;文章链接&#xff1a;https://mp.weixin.qq.com/s/KsrV3nwemQyq3tdv7Lk…

超分辨数据集:Set5 Set14 BSD100 Urban100 Manga109

DIV2K数据集官网上很好找到&#xff0c;但是网上流传的Set5 14 BSD100,Urban100 Manga109都是私人进行处理过的版本&#xff0c;各个处理方式都不同&#xff0c;为了统一方式写了这篇文章。 官方的DIV2K x2、x3、x4的LR图片使用下面matlab代码生成&#xff08;已经经过测试最后…

精细经营:为 Web3 游戏长期卓越奠定基石

作者&#xff1a;lesleyfootprint.network 随着越来越多的人涌入 Web3 游戏世界&#xff0c;构建精细化运营体系成为保持项目长期发展的关键。充分利用数据分析对于明智的决策至关重要&#xff0c;它能揭示用户行为、交易模式和市场趋势的内在奥秘。 基于数据驱动的决策、风险…

汤晓鸥:以科技改变世界,以教育照亮未来

原创 | 文 BFT机器人 汤晓鸥是我国人工智能领域的杰出代表&#xff0c;也是商汤科技的创始人。他在AI领域有着深厚的研究背景和丰富的实践经验&#xff0c;其主要研究方向是计算机视觉&#xff08;CV&#xff09;、模式识别和视频处理。 汤晓鸥积极推动AI技术的发展&#xff0…