HBASE

今天小编就为大家分享一篇HBASE 常用shell命令,增删改查方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧..

1、首先给出本次操作的数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

create 'student','info','address'

put 'student','1','info:age','20'

put 'student','1','info:name','wang'

put 'student','1','info:class','1'

put 'student','1','address:city','zhengzhou'

put 'student','1','address:area','High-tech zone'

put 'student','2','info:age','21'

put 'student','2','info:name','yang'

put 'student','2','info:class','1'

put 'student','2','address:city','beijing'

put 'student','2','address:area','CBD'

put 'student','3','info:age','22'

put 'student','3','info:name','zhao'

put 'student','3','info:class','2'

put 'student','3','address:city','shanghai'

put 'student','3','address:area','pudong'

scan 'student'

2、首先执行,创建表,增加数据操作,执行脚本 /bin/hbase shell ./student.txt,然后查看内容 scan ‘student'

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

hbase(main):001:0> scan 'student'

ROW      COLUMN+CELL

 1       column=address:area, timestamp=1491533426260, value=High-tech zone

 1       column=address:city, timestamp=1491533426239, value=zhengzhou

 1       column=info:age, timestamp=1491533426179, value=20

 1       column=info:class, timestamp=1491533426218, value=1

 1       column=info:name, timestamp=1491533426211, value=wang

 2       column=address:area, timestamp=1491533426297, value=CBD

 2       column=address:city, timestamp=1491533426292, value=beijing

 2       column=info:age, timestamp=1491533426269, value=21

 2       column=info:class, timestamp=1491533426287, value=1

 2       column=info:name, timestamp=1491533426277, value=yang

 3       column=address:area, timestamp=1491533426329, value=pudong

 3       column=address:city, timestamp=1491533426323, value=shanghai

 3       column=info:age, timestamp=1491533426305, value=22

 3       column=info:class, timestamp=1491533426317, value=2

 3       column=info:name, timestamp=1491533426311, value=zhao

3 row(s) in 0.1940 seconds

3、修改操作 也是用put命令,就是重新添加内容把,把以前的内容覆盖。

?

1

格式 put 't1', 'r1', 'c1', 'value'

?

1

命令 put 'student','1','info:age','18'

?

1

2

3

4

5

6

7

8

9

结果

hbase(main):010:0> get 'student','1'

COLUMN      CELL

 address:area    timestamp=1491533426260, value=High-tech zone

 address:city    timestamp=1491533426239, value=zhengzhou

 info:age     timestamp=1491533823331, value=18

 info:class    timestamp=1491533426218, value=1

 info:name     timestamp=1491533426211, value=wang

5 row(s) in 0.0110 seconds

4、删除操作,分为删除单元格的内容,和整行删除

单元格

?

1

2

3

4

5

6

7

8

9

10

hbase(main):012:0> delete 'student','1','info:name'

0 row(s) in 0.0800 seconds

 

hbase(main):014:0> get 'student','1'

COLUMN      CELL

 address:area    timestamp=1491533426260, value=High-tech zone

 address:city    timestamp=1491533426239, value=zhengzhou

 info:age     timestamp=1491533823331, value=18

 info:class    timestamp=1491533426218, value=1

4 row(s) in 0.0120 seconds

整行

?

1

2

3

4

5

6

hbase(main):023:0> deleteall 'student','1'

0 row(s) in 0.0260 seconds

 

hbase(main):024:0> get 'student','1'

COLUMN      CELL

0 row(s) in 0.0070 seconds

5、查询

单行查询

?

1

2

3

4

5

6

7

8

hbase(main):026:0> get 'student','2'

COLUMN      CELL

 address:area    timestamp=1491533426297, value=CBD

 address:city    timestamp=1491533426292, value=beijing

 info:age     timestamp=1491533426269, value=21

 info:class    timestamp=1491533426287, value=1

 info:name     timestamp=1491533426277, value=yang

5 row(s) in 0.0190 seconds

指定列族

?

1

2

3

4

5

6

hbase(main):028:0> get 'student', '2', {COLUMN => 'info'}

COLUMN      CELL

 info:age     timestamp=1491533426269, value=21

 info:class    timestamp=1491533426287, value=1

 info:name     timestamp=1491533426277, value=yang

3 row(s) in 0.0150 seconds

指定列名

?

1

2

3

4

hbase(main):029:0> get 'student', '2', {COLUMN => 'info:age'}

COLUMN      CELL

 info:age     timestamp=1491533426269, value=21

1 row(s) in 0.0080 seconds

使用scan,指定startrow

?

1

2

3

4

5

6

7

8

9

hbase(main):031:0> scan 'student', {COLUMNS => ['info:age', 'address'], LIMIT => 10, STARTROW => '2'}

ROW      COLUMN+CELL

 2       column=address:area, timestamp=1491533426297, value=CBD

 2       column=address:city, timestamp=1491533426292, value=beijing

 2       column=info:age, timestamp=1491533426269, value=21

 3       column=address:area, timestamp=1491533426329, value=pudong

 3       column=address:city, timestamp=1491533426323, value=shanghai

 3       column=info:age, timestamp=1491533426305, value=22

2 row(s) in 0.0190 seconds

scan指定过滤

?

1

2

3

4

hbase(main):005:0> scan 'student',{FILTER=>"(TimestampsFilter (1491533426297))"}

ROW      COLUMN+CELL

 2       column=address:area, timestamp=1491533426297, value=CBD

1 row(s) in 0.0170 seconds

以上这篇HBASE 常用shell命令,增删改查方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

原文链接:https://blog.youkuaiyun.com/qq_22222499/article/details/69808525

08-22
### HBase概述 HBase是一个分布式的、可扩展的、基于Hadoop的NoSQL数据库,专为处理大规模数据集而设计。它基于Google的Bigtable论文实现,并与Hadoop生态系统紧密集成。HBase支持随机、实时的读写操作,适用于需要快速访问海量数据的场景。 HBase的核心架构包括以下几个关键组件: - **HMaster**:负责管理HBase集群中的RegionServer,包括分配Region、负载均衡等任务。 - **RegionServer**:负责存储和管理一个或多个Region,处理客户端的读写请求。 - **ZooKeeper**:用于协调HBase集群中的各个节点,提供元数据存储和故障恢复功能。 - **HRegion**:数据在HBase中被划分为多个Region,每个Region负责一部分行键范围的数据。 - **HStore**:每个Region由多个HStore组成,HStore负责管理列族的数据。 - **MemStore和HFile**:数据首先写入内存中的MemStore,当达到一定大小后,会被刷写到磁盘上的HFile中[^3]。 ### HBase使用场景 HBase适用于需要处理大规模数据集,并且要求高可用性和可扩展性的场景。以下是一些常见的使用场景: 1. **大数据实时查询**:HBase支持随机读写操作,适用于需要实时查询大规模数据的场景,如日志分析、用户行为跟踪等。 2. **分布式存储**:HBase可以存储PB级别的数据,并且支持水平扩展,适用于需要存储海量数据的应用。 3. **时间序列数据**:HBase的LSM树结构适合处理时间序列数据,如传感器数据、金融交易记录等。 4. **推荐系统**:HBase可以用于存储用户的行为数据,结合实时查询能力,支持推荐系统的实时更新和查询需求。 5. **消息队列**:HBase可以作为消息队列系统的一部分,存储和管理大量的消息数据。 ### HBase的配置与安全通信 为了确保HBase的安全性,可以配置安全RPC(Remote Procedure Call)通信,并启用加密通信。在HBase中,可以通过修改`hbase-site.xml`文件来配置加密通信。具体来说,可以在每个客户端的配置文件中添加以下内容: ```xml <property> <name>hbase.rpc.protection</name> <value>privacy</value> </property> ``` 该配置项启用了HBase的隐私保护功能,确保客户端与服务器之间的通信是加密的,从而防止数据在传输过程中被窃取或篡改[^1]。 ### HBase的表管理与数据操作 HBase提供了丰富的表管理和数据操作命令,可以通过HBase Shell进行交互。例如,可以使用`list_regions`命令查看表的Region信息: ```shell 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'] ``` 这些命令可以帮助用户了解表的分布情况,优化数据的本地性,从而提高查询性能[^2]。 ### HBase的数据存储机制 HBase的数据存储基于分布式哈希表(DHT)和LSM树(Log-Structured Merge-Tree)算法。具体来说,HBase将数据按照行键(Row Key)进行分区,每个分区称为一个Region。数据首先写入内存中的MemStore,当MemStore达到一定大小后,数据会被刷写到磁盘上的HFile中。为了提高查询性能,HBase会定期对磁盘上的HFile进行合并操作,减少数据的冗余和碎片化[^3]。 ### HBase与Phoenix的集成 HBase可以通过Apache Phoenix进行SQL查询。Phoenix提供了两种方式来创建表映射: 1. **HBase中不存在表时**:可以直接使用`CREATE TABLE`指令创建表,系统会自动在Phoenix和HBase中创建相应的表,并根据指令内的参数对表结构进行初始化。 2. **HBase中已经存在表时**:可以以类似创建视图的方式创建关联表,只需将`CREATE VIEW`改为`CREATE TABLE`即可。例如: ```sql CREATE TABLE "test"(id VARCHAR PRIMARY KEY,"info1"."name" VARCHAR, "info2"."address" VARCHAR) COLUMN_ENCODED_BYTES=0; ``` 这种方式允许用户通过SQL语法操作HBase中的数据,简化了HBase的使用难度[^4]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值