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();
	}

相关推荐