HBase Shell And JavaAPI使用
HBase shell操作
表创建
#进入hbase shell [root@centos bin]# hbase shell #创建一张user表,有三个列族 hbase(main):001:0> create 'user','uid','address','info44' #查看表 hbase(main):002:0> list TABLE user
查看表结构
hbase(main):001:0> describe 'user' DESCRIPTION ENABLED 'user', {NAME => 'address', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE true => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_DELET ED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', BLOCKCACH E => 'true'}, {NAME => 'info44', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_S COPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEEP_ DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', BLOC KCACHE => 'true'}, {NAME => 'uid', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION _SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2147483647', KEE P_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false', ENCODE_ON_DISK => 'true', BL OCKCACHE => 'true'}
删除表
#不能直接删除 hbase(main):005:0* drop 'user' ERROR: Table user is enabled. Disable it first.' Here is some help for this command: Drop the named table. Table must first be disabled: e.g. "hbase> drop 't1'" #先disable一张表 hbase(main):006:0> disable 'user' 0 row(s) in 2.1410 seconds #才能删除 hbase(main):007:0> drop 'user' 0 row(s) in 1.1180 seconds hbase(main):008:0> list TABLE 0 row(s) in 0.0400 seconds
插入一条记录
#表明,行健,列族,值 hbase(main):004:0> put 'user','lisi','address:city','beijing' hbase(main):005:0> get 'user','lisi' COLUMN CELL address:city timestamp=1439284919358, value=beijing #查询address列族信息 hbase(main):005:0> get 'user','lisi','address' #查询address列族中city修饰符 hbase(main):005:0> get 'user','lisi','address:city'
查看记录版本信息,默认最多显示3条例是版本
#查看wangwu info列族的age标识符版本信息 hbase(main):016:0> get 'user','wangwu',{COLUMN=>'info:age',VERSIONS=>3} COLUMN CELL info:age timestamp=1439285717405, value=28 info:age timestamp=1439285714541, value=27 info:age timestamp=1439285711351, value=26
查询整长表
hbase(main):001:0> scan 'user'
删除一行记录
hbase(main):001:0> deleteall 'user','wangwu'
删除一列记录
#删除行健为wangwu的info列族中age标识符列 hbase(main):001:0>delete 'user','wangwu','info:age'
清空表数据
hbase(main):001:0> truncate 'user'
HBase JavaAPI
创建表
@Test public void createTableTest() throws Exception { Configuration configuration = HBaseConfiguration.create(); configuration.set("hbase.rootdir", "hdfs://192.168.56.101:/hbase"); configuration.set("hbase.zookeeper.quorum", "centos"); HBaseAdmin hBaseAdmin = new HBaseAdmin(configuration); // exist table name if (!hBaseAdmin.tableExists("tablee")) { // create table HTableDescriptor tableDescriptor = new HTableDescriptor("tablee"); // create colum family HColumnDescriptor columnDescriptor = new HColumnDescriptor("familyy"); // set column family in table tableDescriptor.addFamily(columnDescriptor); // create hBaseAdmin.createTable(tableDescriptor); } hBaseAdmin.close(); }
删除表
@Test public void deleteTableTest() throws Exception { Configuration configuration = HBaseConfiguration.create(); configuration.set("hbase.rootdir", "hdfs://192.168.56.101:/hbase"); configuration.set("hbase.zookeeper.quorum", "centos"); HBaseAdmin hBaseAdmin = new HBaseAdmin(configuration); hBaseAdmin.disableTable("tablee"); hBaseAdmin.deleteTable("tablee"); hBaseAdmin.close(); }
插入一条记录
@Test public void insertDataTest() throws Exception { Configuration configuration = HBaseConfiguration.create(); configuration.set("hbase.rootdir", "hdfs://192.168.56.101:/hbase"); configuration.set("hbase.zookeeper.quorum", "centos"); HTable hTable = new HTable(configuration, "tablee"); // set rowkey Put put = new Put("rowkey3".getBytes()); // set column family (列族名,列族标识符,值) put.add("familyy".getBytes(), "age".getBytes(), "25".getBytes()); hTable.put(put); hTable.close(); }
查询一条记录
@Test public void getRecordDataTest() throws Exception { Configuration configuration = HBaseConfiguration.create(); configuration.set("hbase.rootdir", "hdfs://192.168.56.101:/hbase"); configuration.set("hbase.zookeeper.quorum", "centos"); HTable hTable = new HTable(configuration, "tablee"); Get get = new Get("rowkey1".getBytes()); Result result = hTable.get(get); System.out.println(result); // get column family byte[] ageValue = result.getValue("familyy".getBytes(), "age".getBytes()); System.out.println(new String(ageValue)); hTable.close(); }
查询全表数据
@Test public void findAllDataTest() throws Exception { Configuration configuration = HBaseConfiguration.create(); configuration.set("hbase.rootdir", "hdfs://192.168.56.101:/hbase"); configuration.set("hbase.zookeeper.quorum", "centos"); HTable hTable = new HTable(configuration, "tablee"); ResultScanner resultScanner = hTable.getScanner(new Scan()); for (Result result : resultScanner) { byte[] row = result.getRow(); byte[] ageValue = result.getValue("familyy".getBytes(), "age".getBytes()); System.out.println(new String(row) + "\t" + new String(ageValue)); } hTable.close(); }
相关推荐
tianhuak 2020-11-24
huha 2020-10-16
lianshaohua 2020-09-23
laisean 2020-11-11
zhangjie 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
CARBON 2020-10-20
彼岸随笔 2020-10-20
lianshaohua 2020-10-20
yutou0 2020-10-17
JohnYork 2020-10-16
xiaonamylove 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16
ourtimes 2020-10-16