最新要闻
- 世界热消息:杯具!上海一小区电动车爆炸起火 家人惨被烧伤:网友吵翻为何电池拿回家充电
- 莫扎特的一句话(关于莫扎特的话例如说他天真)
- 世界热点!莫扎特的一句话(关于莫扎特的话例如说他天真)
- 清远公用品牌IP形象亮相-全球播报
- 关于铁路计次票、定期票 如何购买使用 环球聚看点
- 天天视点!多地高温预警 今年618空调没促销降价:还有经销商趁机涨价
- 龙爸无双100集电视剧免费观看|当前热门
- 第二届联合国人居大会闭幕 通过“人人享有可负担住房”等决议_百事通
- 消息!第二届联合国人居大会闭幕 通过“人人享有可负担住房”等决议
- 中超综合:中超第一阶段结束 上海海港领跑积分榜
- 中超积分榜:海港领跑三镇仅第8 大连人倒数第一
- 第34届中国经济新闻奖:21世纪经济报道获评论一等奖、融合报道一等奖 天天精选
- 全球讯息:武汉到清江画廊旅游攻略_清江画廊旅游攻略
- 新动态:最美童星长大后惊艳全网!16岁时因“不够性感”被导演刷掉,她霸气怒怼:恶心的猪!
- 窒息灭火法是指什么_窒息灭火法
- 全球快资讯:美国旧金山毒品泛滥、暴力犯罪猖獗 市民称正在目睹西方文明崩溃
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今日热议:Hbase安装和shell客户端操作
简介
HBase 是一个面向列式存储的分布式数据库,其设计思想来源于 Google 的 BigTable 论文。HBase 底层存储基于 HDFS 实现,集群的管理基于 ZooKeeper 实现。HBase 良好的分布式架构设计为海量数据的快速存储、随机访问提供了可能,基于数据副本机制和分区机制可以轻松实现在线扩容、缩容和数据容灾,是大数据领域中 Key-Value 数据结构存储最常用的数据库方案
特点
(资料图片)
- 易扩展
Hbase 的扩展性主要体现在两个方面,一个是基于运算能力(RegionServer) 的扩展,通过增加 RegionSever 节点的数量,提升 Hbase 上层的处理能力;另一个是基于存储能力的扩展(HDFS),通过增加 DataNode 节点数量对存储层的进行扩容,提升 HBase 的数据存储能力。
- 海量存储
HBase 作为一个开源的分布式 Key-Value 数据库,其主要作用是面向 PB 级别数据的实时入库和快速随机访问。这主要源于上述易扩展的特点,使得 HBase 通过扩展来存储海量的数据。
- 列式存储
Hbase 是根据列族来存储数据的。列族下面可以有非常多的列。列式存储的最大好处就是,其数据在表中是按照某列存储的,这样在查询只需要少数几个字段时,能大大减少读取的数据量。
- 高可靠性
WAL 机制保证了数据写入时不会因集群异常而导致写入数据丢失,Replication 机制保证了在集群出现严重的问题时,数据不会发生丢失或损坏。而且 Hbase 底层使用 HDFS,HDFS 本身也有备份。
- 稀疏性
在 HBase 的列族中,可以指定任意多的列,为空的列不占用存储空间,表可以设计得非常稀疏。
- 模块组成
HBase 可以将数据存储在本地文件系统,也可以存储在 HDFS 文件系统。在生产环境中,HBase 一般运行在HDFS 上,以 HDFS 作为基础的存储设施。HBase 通过 HBase Client 提供的 Java API 来访问 HBase 数据库,以完成数据的写入和读取。HBase 集群主由HMaster、Region Server 和 ZooKeeper 组成。
架构
HBase 系统遵循 Master/Salve 架构,由三种不同类型的组件组成:client
- 提供了访问hbase的接口
- 提供cache缓存提高访问hbase的效率 , 比如region的信息
Zookeeper
- 保证任何时候,集群中只有一个 Master;
- 存储所有 Region 的寻址入口;
- 实时监控 Region Server 的状态,将 Region Server 的上线和下线信息实时通知给 Master;
- 存储 HBase 的 Schema,包括有哪些 Table,每个 Table 有哪些 Column Family 等信息。
Master
- 为 Region Server 分配 Region;
- 负责 Region Server 的负载均衡 ;
- 发现失效的 Region Server 并重新分配其上的 Region;
- GFS 上的垃圾文件回收;
- 处理 Schema 的更新请求
Region Server
- Region Server 负责维护 Master 分配给它的 Region ,并处理发送到 Region 上的 IO 请求;
- Region Server 负责切分在运行过程中变得过大的 Region
安装
因为hbase需要依赖zookeeper和hdfs,所以在安装hbase集群之前需要确保zookeeper和hdfs的环境正常
- 上传压缩包并解压
- hbase配置
# 1.在conf目录下找到hbase-env.shcd /opt/apps/hbase-2.2.5/confvi hbase-env.sh# 修改的地方:# 1.1 配置java的环境变量,注意需要将前面的注释打开export JAVA_HOME=/opt/apps/jdk1.8#1.2 hbase中内嵌了一个zookeeper,默认使用的是内置的zoopkeeper,将等号后面的true改成falseexport HBASE_MANAGES_ZK=false# 2.在 conf目录下找到hbase-site.xmlvi hbase-site.xml# 在最下面输入下面的配置文件hbase.rootdir hdfs://linux01:8020/hbase hbase.cluster.distributed true hbase.unsafe.stream.capability.enforce false hbase.zookeeper.quorum linux01:2181,linux02:2181,linux03:2181 # 3.regionservers 配置 启动集群中的Regionserver机器vi regionservers# 输入自己的三台机器域名linux01linux02linux03
- 集群分发
for i in 2 3doscp -r hbase-2.2.5/ linux0$i:$PWDdone
- 启动
单节点启动:
bin/hbase-daemon.sh start masterbin/hbase-daemon.sh start regionserver# 提示:如果regionserver无法启动,请先检查下集群之间的节点时间是否同步
一键启动:
bin/start-hbase.sh
- 验证启动是否成功
# 1.jps查看[root@linux01 conf]# jps4305 Jps2386 QuorumPeerMain2051 DataNode3747 HMaster # 查看HMaster有无进程1898 NameNode3934 HRegionServer # 查看HRegionServer有无进程# 2.通过"linux01:16010"的方式来访问HBase管理页面,进得去代表启动成功
数据模型
namespace:hbase中没有数据库的概念 , 是使用namespace来达到数据库分类别管理表的作用
table:表,一个表包含多行数据
Row Key (行键):一行数据包含一个唯一标识rowkey、多个column以及对应的值。在HBase中,一张表中所有row都按照rowkey的字典序由小到大排序。
Column Family(列族):在建表的时候指定,不能够随意的删减,一个列族下面可以有多个列(类似于给列进行分组,相同属性的列是一个组,给这个组取个名字叫列族)
Column Qualifier (列):列族下面的列,一个列必然是属于某一个列族的行
Cell:单元格,由(rowkey、column family、qualifier、type、timestamp,value)组成的结构,其中type表示Put/Delete操作类型,timestamp代表这个cell的版本。KV结构存储,其中rowkey、column family、qualifier、type以及timestamp是K,value字段对应KV结构的V。
Timestamp(时间戳):时间戳,每个cell在写入HBase的时候都会默认分配一个时间戳作为该cell的版本,用户也可以在写入的时候自带时间戳。HBase支持多版本特性,即同一rowkey、column下可以有多个value存在,这些value使用timestamp作为版本号,版本越大,表示数据越新。
shell客户端
# 如果配置了环境变量:在任意地方敲 hbase shell# 如果没有配置环境变量,需要在bin目录下./hbase shellhbase shell# 出现如下 代表成功进入了hbase的shell客户端hbase(main):001:0>
通用命令
status: 查看HBase的状态,例如,服务器的数量。
hbase(main):001:0> status1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average loadTook 0.3609 seconds
version: 提供正在使用HBase版本。
hbase(main):002:0> version2.2.5, rf76a601273e834267b55c0cda12474590283fd4c, 2020年 05月 21日 星期四 18:34:40 CSTTook 0.0004 seconds
table_help: 表引用命令提供帮助。
关于表的一些命令参考如:To read the data out, you can scan the table: hbase> t.scanwhich will read all the rows in table "t".
whoami: 提供有关用户的信息。
hbase(main):004:0> whoamiroot (auth:SIMPLE) groups: rootTook 0.0098 seconds
命名空间相关命令
list_namespace:列出所有的命名空间
hbase(main):005:0> list_namespaceNAMESPACEdefaulthbase2 row(s)Took 0.0403 seconds
create_namespace:创建一个命名空间
hbase(main):002:0> create_namespace doitNameError: undefined local variable or method "doit" for main:Object# 名称需要加上引号hbase(main):003:0> create_namespace "doit"Took 0.2648 seconds
describe_namespace:描述一个命名空间
hbase(main):004:0> describe_namespace "doit"DESCRIPTION{NAME => "doit"}Quota is disabledTook 0.0710 seconds
drop_namespace:删除一个命名空间
# 注意 :只能删除空的命名空间,如果里面有表是删除不了的hbase(main):005:0> drop_namespace "doit"Took 0.2461 seconds# 命名空间不为空的话hbase(main):035:0> drop_namespace "doit"ERROR: org.apache.hadoop.hbase.constraint.ConstraintException: Only empty namespaces can be removed. Namespace doit has 1 tables at org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.prepareDelete(DeleteNamespaceProcedure.java:217) at org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.executeFromState(DeleteNamespaceProcedure.java:78) at org.apache.hadoop.hbase.master.procedure.DeleteNamespaceProcedure.executeFromState(DeleteNamespaceProcedure.java:45) at org.apache.hadoop.hbase.procedure2.StateMachineProcedure.execute(StateMachineProcedure.java:194) at org.apache.hadoop.hbase.procedure2.Procedure.doExecute(Procedure.java:962) at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1662) at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1409) at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$1100(ProcedureExecutor.java:78) at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1979)For usage try "help "drop_namespace""Took 0.1448 seconds
alter_namespace:修改namespace其中属性
hbase(main):038:0> alter_namespace "doit",{METHOD => "set", "PROPERTY_NAME" => "PROPERTY_VALUE"}Took 0.2491 seconds
list_namespace_tables:列出一个命名空间下所有的表
hbase(main):037:0> list_namespace_tables "doit"TABLEuser1 row(s)Took 0.0372 seconds=> ["user"]
DDL相关命令
list:列举出默认名称空间下所有的表
hbase(main):001:0> listTABLEdoit:user1 row(s)Took 0.3187 seconds=> ["doit:user"]
create:建表
create ‘xx:t1’,{NAME=>‘f1’,VERSION=>5}# 创建表t1并指明命名空间xx# {NAME} f1指的是列族# VERSION 表示版本数# 多个列族f1、f2、f3create ‘t2’,{NAME=>‘f1’},{NAME=>‘f2’},{NAME=>‘f3’}hbase(main):003:0> create "doit:student" "f1","f2","f3"Created table doit:studentf1Took 1.2999 seconds=> Hbase::Table - doit:studentf1# 创建表得时候预分regionhbase(main):106:0> create "doit:test","f1", SPLITS => ["rowkey_010","rowkey_020","rowkey_030","rowkey_040"]Created table doit:testTook 1.3133 seconds=> Hbase::Table - doit:test
drop:删除表
hbase(main):006:0> drop "doit:studentf1"ERROR: Table doit:studentf1 is enabled. Disable it first.For usage try "help "drop""Took 0.0242 seconds# 注意:删除表之前需要禁用表hbase(main):007:0> disable "doit:studentf1"Took 0.7809 secondshbase(main):008:0> drop "doit:studentf1"Took 0.2365 seconds
drop_all:丢弃在命令中给出匹配“regex”的表
hbase(main):023:0> disable_all "doit:student.*"doit:student1doit:student2doit:student3doit:studentf1Disable the above 4 tables (y/n)?y4 tables successfully disabledTook 4.3497 secondshbase(main):024:0> drop_all "doit:student.*"doit:student1doit:student2doit:student3doit:studentf1Drop the above 4 tables (y/n)?y4 tables successfully droppedTook 2.4258 seconds
disable:禁用表
# 删除表之前必须先禁用表hbase(main):007:0> disable "doit:studentf1"Took 0.7809 seconds
disable_all:禁用在命令中给出匹配“regex”的表
hbase(main):023:0> disable_all "doit:student.*"doit:student1doit:student2doit:student3doit:studentf1Disable the above 4 tables (y/n)?y4 tables successfully disabledTook 4.3497 seconds
enable:启用表
hbase(main):007:0> enable "doit:student"Took 0.7809 seconds
enable_all:启用在命令中给出匹配“regex”的表
hbase(main):032:0> enable_all "doit:student.*"doit:studentdoit:student1doit:student2doit:student3doit:student4Enable the above 5 tables (y/n)?y5 tables successfully enabledTook 5.0114 seconds
is_enabled:判断该表是否是启用的表
hbase(main):034:0> is_enabled "doit:student"trueTook 0.0065 seconds=> true
is_disabled:判断该表是否是禁用的表
hbase(main):035:0> is_disabled "doit:student"falseTook 0.0046 seconds=> 1
describe:描述这张表
hbase(main):038:0> describe "doit:student"Table doit:student is ENABLEDdoit:studentCOLUMN FAMILIES DESCRIPTION{NAME => "f1", VERSIONS => "1", EVICT_BLOCKS_ON_CLOSE => "false", NEW_VERSION_BEHAVIOR => "false", KEEP_DELETED_CELLS => "FALSE", CACHE_DATA_ON_WRITE => "false", DATA_BLOCK_ENCODING => "NONE", TTL => "FOREVER", MIN_VERSIONS => "0", REPLICATION_SCOPE => "0", BLOOMFILTER => "ROW", CACHE_INDEX_ON_WRITE => "false", IN_MEMORY => "false", CACHE_BLOOMS_ON_WRITE => "false", PREFETCH_BLOCKS_ON_OPEN => "false", COMPRESSION => "NONE", BLOCKCACHE => "true", BLOCKSIZE => "65536"}{NAME => "f2", VERSIONS => "1", EVICT_BLOCKS_ON_CLOSE => "false", NEW_VERSION_BEHAVIOR => "false", KEEP_DELETED_CELLS => "FALSE", CACHE_DATA_ON_WRITE => "false", DATA_BLOCK_ENCODING => "NONE", TTL => "FOREVER", MIN_VERSIONS => "0", REPLICATION_SCOPE => "0", BLOOMFILTER => "ROW", CACHE_INDEX_ON_WRITE => "false", IN_MEMORY => "false", CACHE_BLOOMS_ON_WRITE => "false", PREFETCH_BLOCKS_ON_OPEN => "false", COMPRESSION => "NONE", BLOCKCACHE => "true", BLOCKSIZE => "65536"}{NAME => "f3", VERSIONS => "1", EVICT_BLOCKS_ON_CLOSE => "false", NEW_VERSION_BEHAVIOR => "false", KEEP_DELETED_CELLS => "FALSE", CACHE_DATA_ON_WRITE => "false", DATA_BLOCK_ENCODING => "NONE", TTL => "FOREVER", MIN_VERSIONS => "0", REPLICATION_SCOPE => "0", BLOOMFILTER => "ROW", CACHE_INDEX_ON_WRITE => "false", IN_MEMORY => "false", CACHE_BLOOMS_ON_WRITE => "false", PREFETCH_BLOCKS_ON_OPEN => "false", COMPRESSION => "NONE", BLOCKCACHE => "true", BLOCKSIZE => "65536"}3 row(s)QUOTAS0 row(s)Took 0.0349 seconds# VERSIONS => "1", -- 版本数量# EVICT_BLOCKS_ON_CLOSE => "false", # NEW_VERSION_BEHAVIOR => "false", # KEEP_DELETED_CELLS => "FALSE", 保留删除的单元格# CACHE_DATA_ON_WRITE => "false", # DATA_BLOCK_ENCODING => "NONE", # TTL => "FOREVER", -- 过期时间# MIN_VERSIONS => "0", -- 最小版本数# REPLICATION_SCOPE => "0", # BLOOMFILTER => "ROW", --布隆过滤器# CACHE_INDEX_ON_WRITE => "false", # IN_MEMORY => "false", -- 内存中# CACHE_BLOOMS_ON_WRITE => "false", --布隆过滤器# PREFETCH_BLOCKS_ON_OPEN => "false", # COMPRESSION => "NONE", -- 压缩格式# BLOCKCACHE => "true", -- 块缓存# BLOCKSIZE => "65536" -- 块大小
alter:修改表里面的属性
hbase(main):040:0> alter "doit:student", NAME => "cf1", VERSIONS => 5, TTL => 10Updating all regions with the new schema...1/1 regions updated.Done.Took 2.1406 seconds
alter_async:直接操作不等待,和上面的alter功能一样
hbase(main):059:0> alter_async "doit:student", NAME => "cf1", VERSIONS => 5, TTL => 10Took 1.0268 seconds
alter_status:获取alter命令的执行状态
hbase(main):060:0> alter_status "doit:student"1/1 regions updated.Done.Took 1.0078 seconds
list_regions:列出一个表中所有的region
Examples:hbase> list_regions "table_name"hbase> list_regions "table_name", "server_name"hbase> list_regions "table_name", {SERVER_NAME => "server_name", LOCALITY_THRESHOLD => 0.8}hbase> list_regions "table_name", {SERVER_NAME => "server_name", LOCALITY_THRESHOLD => 0.8}, ["SERVER_NAME"]hbase> list_regions "table_name", {}, ["SERVER_NAME", "start_key"]hbase> list_regions "table_name", "", ["SERVER_NAME", "start_key"]hbase(main):045:0> list_regions "doit:student" SERVER_NAME | REGION_NAME | START_KEY | END_KEY | SIZE | REQ | LOCALITY | --------------------------- | ------------------------------------------------------------- | ---------- | ---------- | ----- | ----- | ---------- | linux02,16020,1683636566738 | doit:student,,1683642944714.39f7c8772bc476c4d38c663e879d50da. | | | 0 | 0 | 0.0 | 1 rowsTook 0.0145 seconds
locate_region:通过表名和row名方式获取region
hbase(main):062:0> locate_region "doit:student", "key0"HOST REGION linux02:16020 {ENCODED => 39f7c8772bc476c4d38c663e879d50da, NAME => "doit:student,,1683642944714.39f7c8772bc476c4d38c663e879d50da.", STARTKEY => "", ENDK EY => ""}1 row(s)Took 0.0027 seconds
show_filters:显示hbase的所有的过滤器
hbase(main):058:0> show_filtersDependentColumnFilterKeyOnlyFilterColumnCountGetFilterSingleColumnValueFilterPrefixFilterSingleColumnValueExcludeFilterFirstKeyOnlyFilterColumnRangeFilterColumnValueFilterTimestampsFilterFamilyFilterQualifierFilterColumnPrefixFilterRowFilterMultipleColumnPrefixFilterInclusiveStopFilterPageFilterValueFilterColumnPaginationFilterTook 0.0035 seconds
DML相关命令
put插入/更新数据【某一行的某一列】(如果不存在,就插入,如果存在就更新)
hbase(main):007:0> put "doit:user_info" ,"rowkey_001","f1:name","zss"Took 0.0096 secondshbase(main):008:0> put "doit:user_info" ,"rowkey_001","f1:age","1"Took 0.0039 secondshbase(main):009:0> put "doit:user_info" ,"rowkey_001","f1:gender","male"Took 0.0039 secondshbase(main):010:0> put "doit:user_info" ,"rowkey_001","f2:phone_num","98889"Took 0.0040 secondshbase(main):011:0> put "doit:user_info" ,"rowkey_001","f2:gender","98889"# 注意:put中需要指定哪个命名空间的那个表,然后rowkey是什么,哪个列族下面的哪个列名,然后值是什么# 一个个的插入,不能一下子插入多个列名的值
get:获取一个列族中列这个cell
hbase(main):015:0> get "doit:user_info" ,"rowkey_001","f2:gender"COLUMN CELL f2:gender timestamp=1683646645379, value=1231 row(s)Took 0.0242 secondshbase(main):016:0> get "doit:user_info" ,"rowkey_001"COLUMN CELL f1:age timestamp=1683646450598, value=1 f1:gender timestamp=1683646458847, value=male f1:name timestamp=1683646443469, value=zss f2:gender timestamp=1683646645379, value=123 f2:phone_num timestamp=1683646472508, value=988891 row(s)Took 0.0129 seconds# 如果遇到中文乱码的问题怎么办呢?在最后加上{"FORMATTER"=>"toString"}参数即可hbase(main):137:0> get "doit:student","rowkey_001",{"FORMATTER"=>"toString"}COLUMN CELL f1:name timestamp=1683864047691, value=张三1 row(s)Took 0.0057 seconds# 注意:get是hbase中查询数据最快的方式,但是只能每次返回一个rowkey的数据
scan:扫描表中的所有数据
hbase(main):012:0> scan "doit:user_info"ROW COLUMN+CELL rowkey_001 column=f1:age, timestamp=1683646450598, value=1 rowkey_001 column=f1:gender, timestamp=1683646458847, value=male rowkey_001 column=f1:name, timestamp=1683646443469, value=zss rowkey_001 column=f2:gender, timestamp=1683646483495, value=98889 rowkey_001 column=f2:phone_num, timestamp=1683646472508, value=988891 row(s)Took 0.1944 secondsscan "tbname",{Filter(过滤器)}scan "itcast:t2"#rowkey前缀过滤器scan "itcast:t2", {ROWPREFIXFILTER => "2021"}scan "itcast:t2", {ROWPREFIXFILTER => "202101"}#rowkey范围过滤器#STARTROW:从某个rowkey开始,包含,闭区间#STOPROW:到某个rowkey结束,不包含,开区间scan "itcast:t2",{STARTROW=>"20210101_000"}scan "itcast:t2",{STARTROW=>"20210201_001"}scan "itcast:t2",{STARTROW=>"20210101_000",STOPROW=>"20210201_001"}scan "itcast:t2",{STARTROW=>"20210201_001",STOPROW=>"20210301_007"}# 在Hbase数据检索,==尽量走索引查询:按照Rowkey条件查询==# 尽量避免走全表扫描# 索引查询:有一本新华字典,这本字典可以根据拼音检索,找一个字,先找目录,找字# 全表扫描:有一本新华字典,这本字典没有检索目录,找一个字,一页一页找# ==Hbase所有Rowkey的查询都是前缀匹配==# 如果遇到中文乱码的问题在最后加上{"FORMATTER"=>"toString"}参数即可hbase(main):130:0> scan "doit:student",{"FORMATTER"=>"toString"}ROW COLUMN+CELL rowkey_001 column=f1:name, timestamp=1683863389259, value=张三1 row(s)Took 0.0063 seconds
incr:一般用于自动计数的,不用记住上一次的值,直接做自增
# 注意:因为shell往米面设置的value的值是String类型的hbase(main):005:0> incr "doit:student","rowkey002", "f1:age"COUNTER VALUE = 1Took 0.1877 secondshbase(main):006:0> incr "doit:student","rowkey002", "f1:age"COUNTER VALUE = 2Took 0.0127 secondshbase(main):007:0> incr "doit:student","rowkey002", "f1:age"COUNTER VALUE = 3Took 0.0079 secondshbase(main):011:0> incr "doit:student","rowkey002", "f1:age"COUNTER VALUE = 4Took 0.0087 seconds
count:统计一个表里面有多少行数据
hbase(main):031:0> count "doit:user_info"1 row(s)Took 0.0514 seconds=> 1
delete删除某一行中列对应的值
# 删除某一行中列对应的值hbase(main):041:0> delete "doit:student" ,"rowkey_001","f1:id"Took 0.0152 seconds
deleteall:删除一行数据
# 根据rowkey删除一行数据hbase(main):042:0> deleteall "doit:student","rowkey_001"Took 0.0065 seconds
append:追加,假如该列不存在添加新列,存在将值追加到最后
# 再原有值得基础上追加值hbase(main):098:0> append "doit:student","rowkey_001","f1:name","hheda"CURRENT VALUE = zsshhedaTook 0.0070 secondshbase(main):100:0> get "doit:student","rowkey_001","f1:name"COLUMN CELL f1:name timestamp=1683861530789, value=zsshheda1 row(s)Took 0.0057 seconds#注意:如果原来没有这个列,会自动添加一个列,然后将值set进去hbase(main):101:0> append "doit:student","rowkey_001","f1:name1","hheda"CURRENT VALUE = hhedaTook 0.0063 secondshbase(main):102:0> get "doit:student","rowkey_001","f1:name1"COLUMN CELL f1:name1 timestamp=1683861631392, value=hheda1 row(s)Took 0.0063 seconds
truncate:清空表里面所有的数据
# 执行流程# 先disable表# 然后再drop表# 最后重新create表hbase(main):044:0> truncate "doit:student"Truncating "doit:student" table (it may take a while):Disabling table...Truncating table...Took 2.5457 seconds
truncate_preserve:清空表但保留分区
hbase(main):008:0> truncate_preserve "doit:test"Truncating "doit:test" table (it may take a while):Disabling table...Truncating table...Took 4.1352 secondshbase(main):009:0> list_regions "doit:test" SERVER_NAME | REGION_NAME | START_KEY | END_KEY | SIZE | REQ | LOCALITY | --------------------------- | -------------------------------------------------------------------- | ---------- | ---------- | ----- | ----- | ---------- | linux03,16020,1684200651855 | doit:test,,1684205468848.920ae3e043ad95890c4f5693cb663bc5. | | rowkey_010 | 0 | 0 | 0.0 | linux01,16020,1684205091382 | doit:test,rowkey_010,1684205468848.f8a21615be51f42c562a2338b1efa409. | rowkey_010 | rowkey_020 | 0 | 0 | 0.0 | linux02,16020,1684200651886 | doit:test,rowkey_020,1684205468848.25d62e8cc2fdaecec87234b8d28f0827. | rowkey_020 | rowkey_030 | 0 | 0 | 0.0 | linux03,16020,1684200651855 | doit:test,rowkey_030,1684205468848.2b0468e6643b95159fa6e210fa093e66. | rowkey_030 | rowkey_040 | 0 | 0 | 0.0 | linux01,16020,1684205091382 | doit:test,rowkey_040,1684205468848.fb12c09c7c73cfeff0bf79b5dda076cb. | rowkey_040 | | 0 | 0 | 0.0 | 5 rowsTook 0.1019 seconds
get_counter:获取计数器
hbase(main):017:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 1Took 0.0345 secondshbase(main):018:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 2Took 0.0066 secondshbase(main):019:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 3Took 0.0059 secondshbase(main):020:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 4Took 0.0061 secondshbase(main):021:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 5Took 0.0064 secondshbase(main):022:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 6Took 0.0062 secondshbase(main):023:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 7Took 0.0066 secondshbase(main):024:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 8Took 0.0059 secondshbase(main):025:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 9Took 0.0063 secondshbase(main):026:0> incr "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 10Took 0.0061 secondshbase(main):027:0> get_counter "doit:student","rowkey_001","f1:name2"COUNTER VALUE = 10Took 0.0040 seconds
get_splits:用于获取表所对应的region数个数
hbase(main):148:0> get_splits "doit:test"Total number of splits = 5rowkey_010rowkey_020rowkey_030rowkey_040Took 0.0120 seconds=> ["rowkey_010", "rowkey_020", "rowkey_030", "rowkey_040"]
关键词:
今日热议:Hbase安装和shell客户端操作
Web安全-渗透测试-信息收集01|全球热文
世界热消息:杯具!上海一小区电动车爆炸起火 家人惨被烧伤:网友吵翻为何电池拿回家充电
莫扎特的一句话(关于莫扎特的话例如说他天真)
世界热点!莫扎特的一句话(关于莫扎特的话例如说他天真)
清远公用品牌IP形象亮相-全球播报
关于铁路计次票、定期票 如何购买使用 环球聚看点
天天视点!多地高温预警 今年618空调没促销降价:还有经销商趁机涨价
龙爸无双100集电视剧免费观看|当前热门
第二届联合国人居大会闭幕 通过“人人享有可负担住房”等决议_百事通
消息!第二届联合国人居大会闭幕 通过“人人享有可负担住房”等决议
中超综合:中超第一阶段结束 上海海港领跑积分榜
中超积分榜:海港领跑三镇仅第8 大连人倒数第一
第34届中国经济新闻奖:21世纪经济报道获评论一等奖、融合报道一等奖 天天精选
全球讯息:武汉到清江画廊旅游攻略_清江画廊旅游攻略
新动态:最美童星长大后惊艳全网!16岁时因“不够性感”被导演刷掉,她霸气怒怼:恶心的猪!
窒息灭火法是指什么_窒息灭火法
全球快资讯:美国旧金山毒品泛滥、暴力犯罪猖獗 市民称正在目睹西方文明崩溃
每日热门:引导资金支持绿色发展 新华碳科技指数发布
这些大胆的古早综艺,真的是不付费就能看的吗? 当前消息
《暗黑破坏神4》差评如潮 跌到5.1分了_世界焦点
最资讯丨蓉火传递启动|“中国民航英雄机组”成员毕楠:当上火炬手,是荣誉也是责任
社区多元化多角度全方位服务新业态新就业群体
以太阳鸟为标志 G985高铁列车因高考火了:网友打卡沾喜气
湖南景区回应游客漂流翻船:第一天开业人多 放水没控制好-即时看
每日一猜6月10日:哪款能重塑眼镜人士新体验 世界快播
热点在线丨7744小游戏盒_7743小游戏
北京铁路:6月15日起,京津城际、京唐城际等线路运行图有调整
五部门联合启动河湖安全保护专项执法行动
全球信息:21个“问界”商标已转让至华为 申请时间为今年3月
9成产品“赚到钱”!部分债基开始限购
每日一猜6月10日:哪款能重塑眼镜人士新体验
上海一兆韦德倒闭_上海一兆韦德团购
大金鼠:你生在冬天还是春天?出生的季节决定财富! 天天新消息
111ttt舞曲网交谊舞曲_111ttt要听舞曲网每天都要听
【世界新视野】投资超2.5亿 电影《红海行动2》正式启动:比肩《战狼》的动作大片
环球快讯:相机功能也开始付费了:理光K-3 Mark III新功能需付费解锁
Zen3游戏神器 AMD锐龙5 5600X3D曝光:售价只要1000多?
杨尚琨简历_万绍芬与杨尚琨关系
天天热资讯!古曲100首经典_古曲
当前热点-淮安多措并举做好“三夏”服务工作
NGINX配置详解
【技术积累】SpringBoot中的简介与配置【一】
龙爸无双100集电视剧免费观看|环球热点评
装饰材料包括什么东西(装饰材料都包括什么) 环球即时看
微软Edge离奇改动:新版不再支持删除云端同步数据
《变形金刚》《蜘蛛侠》不分伯仲:2023暑期档票房破10亿_世界播资讯
乳晕变大是怎么回事(乳晕大怎么回事)-天天热点
证监会就公开募集证券投资基金投资顾问业务管理规定公开征求意见_每日简讯
陕西西安推动“十里沣河”文旅深度融合古老沣河涌动新活力 焦点资讯
低价团乱象再起 何以无解?|头条焦点
四川省社科院周友苏:适合且能推动上市公司高质量发展的规章制度才是“良法善治”|世界短讯
【世界播资讯】【技术积累】Python中的Pandas库【三】
Linux命令篇 - tar 命令
瑞虎8保养灯怎么消除(本田冠道保养灯怎么消除?) 环球速递
王永调研阿洛亚与蜜泉湖联通工程时强调:树立“大景区、大旅游”理念 努力打造全域旅游胜地|每日速递
天天要闻:日本人拆了辆比亚迪海豹 还出了本书 定价6.7万
你买过“游戏盘”么?分析师:无实体游戏将在2028年成主流|资讯
居理买房暴雷!前员工称“欠薪千万元,丈母娘顶替法人” 全球观焦点
ps保存不了jpg格式怎么办(ps保存不)
惩治网暴,公检法三部门公开征求意见!维权难度能降低吗?
湖南博物馆千年古尸_湖南博物馆千年女干尸|焦点关注
焦点速讯:问麻了…阿里一面索命27问,过了就60W+
世界通讯!小迪网安笔记二:信息收集
极目时评丨环卫母亲与高考儿子相拥而泣刷屏,普通人改变命运的努力打动人心
坚守“可靠”坦克Hi4-T 当下新能源越野的更优解 世界播报
当前聚焦:遗体告别仪式流程和掩口流程(遗体告别仪式流程)
国家防总启动防汛四级应急响应,派工作组赴广西福建指导救灾
手机充电很慢是怎么回事呢_手机充电很慢
《猎魔人》S3新预告再惹观众怒火 服装造型太糟糕-当前热闻
我是大运火炬手丨第一棒火炬手邹敬园:我在成都等你们
打新套利动辄千万,“万人摇”乱象丛生,楼市限价将“退出”? 今日热议
西安艺术高级中学网站(西安艺术高级中学)
天津滨海新区可提供伊立浦电压力锅维修服务地址在哪 全球今热点
全球讯息:化疗的时候有什么症状(化疗是什么感觉)
当你变成兔子中文在线玩_当你变成兔子
Maven常用命令及其作用_全球速读
tab是什么意思英语_tab是什么意思-天天报道
今亮点!得不到就毁掉!租客拿到6万补偿后“毁坏式”退房 被判赔偿9万元!
三星最强安卓平板即将发布,Galaxy Tab S9 Ultra 通过 FCC 认证
当前头条:苹果M2 Ultra在Geekbench 5跑分并没有碾压英特尔、AMD,还不如i9-13900K
清淡饮食吃什么小吃(清淡饮食吃什么)|当前快看
祁阳市人民政府官网_祁阳的风景名胜和非遗文化|当前通讯
【全球播资讯】女子拍到50多条锦鲤首尾相连“龙形游” 网友:这就是鱼贯而入吧
中国电信自主品牌!麦芒全新A系列官宣:新机5000万像素主摄确定
焦点信息:占便宜?Xbox"薅羊毛"《暗黑破坏神4》终极版已强制退款
买二手房后发现房屋漏水怎么办(房屋漏水怎么办) 天天报道
好玩好看,上海国际电影节首次推出“数字影视体验展”
环球资讯:首台套50万千瓦冲击式水电机组项目开工
第53届亚太桥牌锦标赛开赛
每日简讯:聊聊Flink的必知必会(一)
天天最新:橄榄可以搭配葡萄酒吗?
全球快讯:安逸四川日历海报丨在广元利州月坝村:踏湖望星空
12306买卧铺票可以在线选铺了!操作指南出炉:很方便
全球快讯:夫妻节目里的反套路_夫妻节
阴阳师樱花妖技能什么意思(阴阳师樱花妖的夫君是谁) 观察
猪饲料品牌名字_猪饲料品牌-环球热议
博纳董事长于冬:剧集的崛起是对电影真正的冲击,不是拼特效的时代了
阔太王艳48岁重新复出,穿花裙跳舞秀曼妙曲线,彻底颠覆豪门形象 天天报道
还能算中国中型SUV标杆?丰田汉兰达月销已不足5000 隔壁理想已破万