您好,登錄后才能下訂單哦!
魯春利的工作筆記,好記性不如爛筆頭
hbase(main):017:0> create 't_domain', 'c_domain' 0 row(s) in 0.4520 seconds => Hbase::Table - t_domain
通過HDFS查看
HBase中行鍵(RowKey)是表中唯一的,并且按照字典排序由低到高存儲在表中的。
hbase(main):018:0> put 't_domain', 'row1', 'c_domain:name', 'baidu.com' 0 row(s) in 0.6830 seconds hbase(main):019:0> put 't_domain', 'row2', 'c_domain:name', 'sina.com' 0 row(s) in 0.0870 seconds hbase(main):020:0> put 't_domain', 'row3', 'c_domain:name', 'mycms.com' 0 row(s) in 0.0100 seconds hbase(main):021:0> put 't_domain', 'row10', 'c_domain:name', 'www.163.com' 0 row(s) in 0.0280 seconds hbase(main):022:0> put 't_domain', 'row21', 'c_domain:name', 'www.51cto.com' 0 row(s) in 0.0240 seconds hbase(main):023:0> scan 't_domain' ROW COLUMN+CELL row1 column=c_domain:name, timestamp=1440340474441, value=baidu.com row10 column=c_domain:name, timestamp=1440340536382, value=www.163.com row2 column=c_domain:name, timestamp=1440340492582, value=sina.com row21 column=c_domain:name, timestamp=1440340550534, value=www.51cto.com row3 column=c_domain:name, timestamp=1440340518003, value=mycms.com 5 row(s) in 0.1350 seconds
HBase Shell工具:
選擇一臺HBase集群的節點(建議選擇客戶端節點),執行命令bin/hbase shell
看到如下命令說明已進入hbase shell環境,執行help命令可以查看幫助信息:
[hadoop@dnode1 bin]$ hbase shell HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 0.98.1-hadoop2, r1583035, Sat Mar 29 17:19:25 PDT 2014 hbase(main):001:0> help HBase Shell, version 0.98.1-hadoop2, r1583035, Sat Mar 29 17:19:25 PDT 2014 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, flush, hlog_roll, major_compact, merge_region, move, split, trace, unassign, zk_dump Group name: replication Commands: add_peer, disable_peer, enable_peer, list_peers, list_replicated_tables, remove_peer, set_peer_tableCFs, show_peer_tableCFs Group name: snapshot Commands: clone_snapshot, delete_snapshot, list_snapshots, rename_snapshot, restore_snapshot, snapshot Group name: security Commands: grant, revoke, user_permission Group name: visibility labels Commands: add_labels, clear_auths, get_auths, set_auths # 查看集群狀態 hbase(main):002:0> status 3 servers, 0 dead, 3.0000 average load # 該集群有3臺RegionServer,沒有”死掉“的RegionServer中,平均每臺有3個Region。 # HBase版本命令 hbase(main):003:0> version 0.98.1-hadoop2, r1583035, Sat Mar 29 17:19:25 PDT 2014 # 返回值為由逗號分割的三個部分,0.98.1-hadoop2表示HBase版本號,r1583035表示修訂版本,第三部分為編譯HBase的時間。 # 查看ddl命令組的幫助 hbase(main):006:0> help 'ddl' Command: alter Alter a table. Depending on the HBase setting ("hbase.online.schema.update.enable"), the table must be disabled or not to be altered (see help 'disable'). You can add/modify/delete column families, as well as change table configuration. Column families work similarly to create; column family spec can either be a name string, or a dictionary with NAME attribute. Dictionaries are described on the main help command output. For example, to change or add the 'f1' column family in table 't1' from current value to keep a maximum of 5 cell VERSIONS, do: hbase> alter 't1', NAME => 'f1', VERSIONS => 5 You can operate on several column families: hbase> alter 't1', 'f1', {NAME => 'f2', IN_MEMORY => true}, {NAME => 'f3', VERSIONS => 5} // 略 # 示例: hbase(main):033:0> create 'tb1', {NAME => 'cf1', VERSIONS => 5} 0 row(s) in 20.1040 seconds => Hbase::Table - tb1 hbase(main):035:0> create 'tb2', {NAME => 'cf1'}, {NAME => 'cf2'}, {NAME => 'cf3'} 0 row(s) in 19.1130 seconds => Hbase::Table - tb2 # 上述命令的簡化版本如下 hbase(main):036:0> create 'tb3', 'cf1' 0 row(s) in 6.8610 seconds => Hbase::Table - tb3 hbase(main):037:0> create 'tb4', 'cf1', 'cf2', 'cf3' # 三個列族 0 row(s) in 6.2010 seconds hbase(main):045:0> list TABLE httptable tb1 tb2 tb3 tb4 testtable 6 row(s) in 2.3430 seconds => ["httptable", "tb1", "tb2", "tb3", "tb4", "testtable"] hbase(main):046:0> # 說明: # => 表示賦值,如{NAME = 'cf1'}; # 字符串必須使用單引號引起來,如'cf2'; # 如果創建表時需要指定列族的特定屬性,需要花括號括起來,如{NAME='cf1', VERSIONS=5} hbase(main):025:0> help 'namespace' Command: alter_namespace Alter namespace properties. To add/modify a property: hbase> alter_namespace 'ns1', {METHOD => 'set', 'PROERTY_NAME' => 'PROPERTY_VALUE'} To delete a property: hbase> alter_namespace 'ns1', {METHOD => 'unset', NAME=>'PROERTY_NAME'} // 略 hbase(main):048:0> create_namespace 'ns1' 0 row(s) in 4.7320 seconds hbase(main):049:0> list_namespace NAMESPACE default hbase ns1 3 row(s) in 11.0490 seconds hbase(main):050:0> create 'ns1:tb5', 'cf' # 列族cf 0 row(s) in 12.0680 seconds => Hbase::Table - ns1:tb5 hbase(main):051:0> list_namespace_tables 'ns1' TABLE tb5 1 row(s) in 2.1220 seconds hbase(main):052:0> # 查看DML命令的幫助 hbase(main):026:0> help 'dml' hbase(main):052:0> put 'ns1:tb5', 'baidu.com', 'cf:owner', 'BeiJingBaiduCo.' 0 row(s) in 0.4400 seconds hbase(main):053:0> put 'ns1:tb5', 'baidu.com', 'cf:ipstr', '61.135.169.121' 0 row(s) in 1.1640 seconds hbase(main):054:0> put 'ns1:tb5', 'baidu.com', 'cf:reg_date', '19990415' 0 row(s) in 0.3530 seconds hbase(main):055:0> put 'ns1:tb5', 'baidu.com', 'cf:address', '北京' 0 row(s) in 2.7540 seconds hbase(main):056:0> put 'ns1:tb5', 'alibaba.com', 'cf:ipstr', '205.204.101.42' 0 row(s) in 1.2040 seconds # 統計表的行數 hbase(main):064:0> count 'tb5' ERROR: Unknown table tb5! hbase(main):066:0> count 'ns1:tb5' 2 row(s) in 0.3110 seconds => 2 hbase(main):067:0> count 'ns1:tb5', INTERVAL => 100000 2 row(s) in 0.0170 seconds => 2 # 單行讀 hbase(main):068:0> get 'ns1:tb5', 'baidu.com' COLUMN CELL cf:address timestamp=1441006344446, value=\xE5\x8C\x97\xE4\xBA\xAC cf:ipstr timestamp=1441006329572, value=61.135.169.121 cf:owner timestamp=1441006321284, value=BeiJingBaiduCo. cf:reg_date timestamp=1441006335701, value=19990415 4 row(s) in 0.1150 seconds hbase(main):074:0> get 'ns1:tb5', 'baidu.com', 'cf:ipstr' COLUMN CELL cf:ipstr timestamp=1441006329572, value=61.135.169.121 1 row(s) in 0.0200 seconds hbase(main):075:0> # 如果COLUMN未指定column family則會提示錯誤 # ERROR: Unknown column family! Valid column names: cf:* hbase(main):076:0> get 'ns1:tb5', 'baidu.com', {COLUMN => 'cf:reg_date'} COLUMN CELL cf:reg_date timestamp=1441006335701, value=19990415 1 row(s) in 0.0170 seconds hbase(main):077:0> # 掃描表 scan 'hbase:meta' scan 'hbase:meta', {COLUMNS => 'info:regioninfo'} # 刪除列 hbase(main):004:0> delete 'ns1:tb5', 'baidu.com', 'cf:address' 0 row(s) in 0.2260 seconds hbase(main):005:0> get 'ns1:tb5', 'baidu.com' COLUMN CELL cf:ipstr timestamp=1441006329572, value=61.135.169.121 cf:owner timestamp=1441006321284, value=BeiJingBaiduCo. cf:reg_date timestamp=1441006335701, value=19990415 3 row(s) in 0.0210 seconds # 清空表 hbase(main):006:0> truncate 'ns1:tb5' Truncating 'ns1:tb5' table (it may take a while): - Disabling table... - Dropping table... - Creating table... 0 row(s) in 76.4690 seconds hbase(main):007:0> get 'ns1:tb5', 'baidu.com' COLUMN CELL 0 row(s) in 0.0480 seconds 其他操作略。
Thrift客戶端:
略
MapReduce批量操作HBase
見http://luchunli.blog.51cto.com/2368057/1691298
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。