1.2 Hbase命令行客户端
2016-03-14 22:20:10
7,102
0
通过输入hbase shell
既可以登录Hbase命令行客户端
[hadoop@iZ28csbxcf3Z conf]$ hbase shell 2016-03-14 21:30:35,007 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 2016-03-14 21:30:39,030 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 1.0.0-cdh5.4.7, rUnknown, Thu Sep 17 02:19:27 PDT 2015 hbase(main):001:0>
查看hbase 命令行客户端支持的操作,输入"help
"
hbase(main):001:0> help HBase Shell, version 1.0.0-cdh5.4.7, rUnknown, Thu Sep 17 02:19:27 PDT 2015 Type 'help "COMMAND"', (e.g. 'help "get"' -- the quotes are necessary) for help on a specific command. Commands are grouped. Type 'help "COMMAND_GROUP"', (e.g. 'help "general"') for help on a command group. COMMAND GROUPS: Group name: general Commands: status, table_help, version, whoami Group name: ddl Commands: alter, alter_async, alter_status, create, describe, disable, disable_all, drop, drop_all, enable, enable_all, exists, get_table, is_disabled, is_enabled, list, show_filters Group name: namespace Commands: alter_namespace, create_namespace, describe_namespace, drop_namespace, list_namespace, list_namespace_tables Group name: dml Commands: append, count, delete, deleteall, get, get_counter, incr, put, scan, truncate, truncate_preserve Group name: tools Commands: assign, balance_switch, balancer, catalogjanitor_enabled, catalogjanitor_run, catalogjanitor_switch, close_region, compact, compact_mob, compact_rs, flush, major_compact, major_compact_mob, merge_region, move, split, trace, unassign, wal_roll, zk_dump Group name: replication Commands: add_peer, append_peer_tableCFs, disable_peer, enable_peer, list_peers, list_replicated_tables, remove_peer, remove_peer_tableCFs, set_peer_tableCFs, show_peer_tableCFs Group name: snapshots Commands: clone_snapshot, delete_all_snapshot, delete_snapshot, list_snapshots, restore_snapshot, snapshot Group name: configuration Commands: update_all_config, update_config Group name: quotas Commands: list_quotas, set_quota Group name: security Commands: grant, revoke, user_permission Group name: visibility labels Commands: add_labels, clear_auths, get_auths, list_labels, set_auths, set_visibility
Hbase将命令行操作按组进行了划分。以下着重讲解ddl和DML
一、DDL
Group name: namespace
namespace的概念相当于传统关系型数据库软件中库的概念。
查看hbase中namespace
hbase(main):002:0> list_namespace NAMESPACE default hbase 2 row(s) in 0.6770 seconds
hbase自带了2个命名空间hbase
和default
。hbase命名空间类似于Mysql中的information_schema
库,下面存储的是hbase自身运行需要的相关元数据。
default命名空间,主要用户,当我们创建一个表时,如果没有指定namespace,那么默认就属于default命名空间。
查看namespace下面的表
hbase(main):004:0> list_namespace_tables 'hbase' #参数一定要包含在引号中 TABLE meta namespace 2 row(s) in 0.0510 seconds
hbase命名空间下默认有2张表,meta表和namespace表。meta中记录了region的元数据,namespace中记录了命名空间的元数据。
创建命名空间
hbase(main):001:0> create_namespace 'hbase_study' 0 row(s) in 0.5720 seconds hbase(main):002:0> list_namespace NAMESPACE default hbase hbase_study 3 row(s) in 0.0320 seconds hbase(main):003:0>
创建表
hbase中,创建表时,必须要指定表名(table name)、列簇(column family,至少一个)和可选的配置信息(table configuration)。
语法:
create ‘<table name>’,’<column family>’
下面给出的是一个表名为emp的样本模式。它有两个列族:“personal data”和“professional data”。
Row key | personal data | professional data |
---|---|---|
在HBase shell创建该表如下所示。
hbase(main):001:0> create 'hbase_study:emp', 'personal data', 'professional data'#列簇名中间可以有空格 0 row(s) in 1.4410 seconds => Hbase::Table - emp
二 DML
插入数据
语法:
put ’<table name>’,’rowkey’,’<colfamily:colname>’,’<value>’
插入数据
put 'hbase_study:emp','1','personal data:name','raju' put 'hbase_study:emp','1','personal data:city','hyderabad' put 'hbase_study:emp','1','professional data:designation','manager' put 'hbase_study:emp','1','professional data:salary','50000'
查看所有数据
hbase(main):013:0> scan 'hbase_study:emp' ROW COLUMN+CELL 1 column=personal data:city, timestamp=1457963973149, value=hyderabad 1 column=personal data:name, timestamp=1457963932064, value=raju 1 column=professional data:designation, timestamp=1457964044186,value=manager 1 column=professional data:salary, timestamp=1457964045645,value=50000 1 row(s) in 0.0610 seconds
查看某一行的数据
语法
get ’<table name>’,’rowkey’
查询
hbase(main):014:0> get 'hbase_study:emp','1' COLUMN CELL personal data:city timestamp=1457963973149, value=hyderabad personal data:name timestamp=1457963932064, value=raju professional data:designation timestamp=1457964044186, value=manager professional data:salary timestamp=1457964045645, value=50000
读取指定列
语法
get 'table name', ‘rowid’, {COLUMN => ‘column family:column name ’}
查询
hbase(main):015:0> get 'hbase_study:emp','1',{COLUMN=>'personal data:city'} COLUMN CELL personal data:city timestamp=1457963973149, value=hyderabad 1 row(s) in 0.0420 seconds
删除数据
使用“deleteall
”命令,可以删除一行中所有单元格。下面给出是 deleteall 命令的语法。
deleteall ‘<table name>’, ‘<row>’
删除
hbase(main):016:0> deleteall 'hbase_study:emp','1' 0 row(s) in 0.0700 seconds
使用 delete
命令,可以在一个表中删除特定单元格。 delete 命令的语法如下:
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’
上一篇:1.1 HBase伪分布式环境搭建
下一篇:1.3 Hbase存储与HDFS