hbase php 增删改查,HBase基础操作:命名空间、建删改表、增删改查、分区

启动HBase

[root@master bin]# ./start-hbase.sh

进入HBase数据库

[root@master bin]# hbase shell

查看数据库状态

hbase(main):001:0> status

1 active master, 0 backup masters, 3 servers, 0 dead, 0.6667 average load

表示有3台机器活着,0台机器down掉,当前负载0.67(数字越大,负载越大)

执行help查询帮助

general:普通命令组

ddl:数据定义语言命令组

dml:数据操作语言命令组

tools:工具组

replication:复制命令组

SHELL USAGE:shell语法

命名空间

列出命名空间,类似 hive中show databases

list_namespace

scan 'hbase:meta' -- 查看元数据信息

新建命名空间

create_namespace 'ns1'

删除命名空间

drop_namespace 'ns1'

修改命名空间

alter_namespace 'ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

列出所有表

list

新建表

语法:create, {NAME => , VERSIONS => }

创建表t1,有两个family name:f1,f2,且版本数前者为3,后者为1

create 't1',{NAME => 'f1',VERSION => 3},{NAME => 'f2', VERSIONS => 1}

查看表详情

hbase(main):011:0> describe 't1'

Table t1 is ENABLED

t1

COLUMN FAMILIES DESCRIPTION

{NAME => 'f1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FAL

SE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOC

KCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}

{NAME => 'f2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FAL

SE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOC

KCACHE => 'true', BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}

2 row(s) in 0.0320 seconds

删除表中的列簇

alter 't1',{NAME => 'f1',METHOD => 'delete'}

禁用表、删除表

disable 't1'

drop 't1'

利用list或者exists判断表是否存在

hbase(main):014:0> exists 't1'

Table t1 does exist

0 row(s) in 0.0060 seconds

命令 is_enabled

判断是否enabled或者disable

hbase(main):019:0> is_enabled 't1'

true

0 row(s) in 0.0130 seconds

hbase(main):020:0> is_enabled 't2'

ERROR: Unknown table t2!

Here is some help for this command:

Is named table enabled? For example:

hbase> is_enabled 't1'

hbase> is_enabled 'ns1:t1'

插入命令put,查看全表数据scan

对于hbase来说insert update其实没有什么区别,都是插入原理

在hbase中没有数据类型概念,都是“字符类型”,至于含义在程序中体现

每插入一条记录都会自动建立一个时间戳,由系统自动生成。也可手动“强行指定”

hbase(main):024:0> put 't1' ,'rowkey001', 'f2:f002', 'value001'

0 row(s) in 0.0210 seconds

hbase(main):025:0> scan 't1'

ROW COLUMN+CELL

rowkey001 column=f2:f002, timestamp=1564494621209, value=value001

指定版本查看

hbase(main):026:0> scan 't1',{VERSIONS=>2}

ROW COLUMN+CELL

rowkey001 column=f2:f002, timestamp=1564494621209, value=value001

1 row(s) in 0.0100 seconds

hbase(main):027:0>

get 查看

hbase(main):036:0> get 't1', 'rowkey001'

COLUMN CELL

f2:f002 timestamp=1564494621209, value=value001

1 row(s) in 0.0180 seconds

修改版本存储个数

alter 't1',{NAME => 'f2',VERSIONS => 3}

查看多少条记录count

count 't1'

截断表truncate

注意: truncate表的处理过程:由于Hadoop的HDFS文件系统不允许直接修改,所以只能先删除表再重新创建已达到清空表的目的

删除delete

删除指定列簇

hbase(main):037:0> delete 't1','rowkey001','f2:f002'

0 row(s) in 0.0250 seconds

hbase(main):038:0> get 't1', 'rowkey001'

COLUMN CELL

0 row(s) in 0.0090 seconds

分区

建表时预设分区

create 'test_table', 'cf1', {SPLITS => ['a', 'b', 'c', 'd']}

查看HDFS是可以看到这个表下有5个文件夹(如果没有预分区,则只有一个文件夹)

[root@master ~]# hadoop fs -ls /hbase/data/default/test_table

Found 7 items

drwxr-xr-x - root supergroup 0 2019-07-30 22:08 /hbase/data/default/test_table/.tabledesc

drwxr-xr-x - root supergroup 0 2019-07-30 22:08 /hbase/data/default/test_table/.tmp

drwxr-xr-x - root supergroup 0 2019-07-30 22:08 /hbase/data/default/test_table/0167b46c959a72017e6ade4a0f4fa1c4

drwxr-xr-x - root supergroup 0 2019-07-30 22:08 /hbase/data/default/test_table/0d92bf1919e7922e77e186d2b3f26d78

drwxr-xr-x - root supergroup 0 2019-07-30 22:08 /hbase/data/default/test_table/37c06c49b4caf1cdcdd0d64dca9a64d9

drwxr-xr-x - root supergroup 0 2019-07-30 22:08 /hbase/data/default/test_table/59fe8bb5b20c12e6b0eed7c72e521f1c

drwxr-xr-x - root supergroup 0 2019-07-30 22:08 /hbase/data/default/test_table/9b16fe8003511ba6abe857c19ef79e27

手动分区

split 'test_table','9b16fe8003511ba6abe857c19ef79e27'

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HBase是一个NoSQL数据库,支持海量数据的存储和高并发的读写操作。在HBase中,操作包括增加、删除、修改和查询。下面是HBase增删改查操作的实验分析: 1. 增加操作HBase中,创一个新需要指定名和列族。列族类似于传统的数据库中的列,它们是中数据的逻辑组织方式。下面是创一个名为“student”的并添加一个列族“info”的示例代码: ``` create 'student', 'info' ``` 在中添加一个新行需要指定行键和列值。下面是添加一行数据的示例代码: ``` put 'student', '1', 'info:name', 'Tom' ``` 这条命令将在“student”中添加一行数据,行键为“1”,列族为“info”,列名为“name”,列值为“Tom”。 2. 删除操作HBase中,删除需要先禁用,然后才能删除。下面是删除名为“student”的的示例代码: ``` disable 'student' drop 'student' ``` 在中删除一行数据需要指定行键和列族。下面是删除“student”中行键为“1”、列族为“info”的数据的示例代码: ``` delete 'student', '1', 'info:name' ``` 3. 修改操作HBase中,修改中的数据需要先删除原有的数据,然后添加新的数据。下面是修改“student”中行键为“1”、列族为“info”、列名为“name”的数据为“Jerry”的示例代码: ``` delete 'student', '1', 'info:name' put 'student', '1', 'info:name', 'Jerry' ``` 4. 查询操作HBase中,查询中的数据需要指定行键、列族和列名。下面是查询“student”中行键为“1”、列族为“info”、列名为“name”的数据的示例代码: ``` get 'student', '1', 'info:name' ``` 这条命令将返回“student”中行键为“1”、列族为“info”、列名为“name”的数据。 综上所述,HBase增删改查操作比较简单,但需要注意的是,HBase是一个分布式数据库,操作需要在整个集群上进行,因此需要保证集群的稳定性和一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值