`

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

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    nosql实验四-HBaseShell API操作.docx

    在本实验中,我们将使用 HBase Shell API 来实现基本的数据操作,包括创建表、查看所有表、插入数据等。 HBase 配置和连接 在使用 HBase Shell API 之前,需要首先配置 HBase 的连接信息。在本实验中,我们使用的...

    hbase常用JAVA API

    可以通过HBase Shell命令来查看是否成功执行了Java API的操作,例如,`hbase hbasetest.jar hbase.java.txt` 可能是一个运行包含上述操作的Java程序,并输出结果到`hbase.java.txt`的命令。 以上就是HBase常用Java...

    大数据实验Hbase安装部署和使用javaapi调用.pdf

    【大数据实验Hbase安装部署和使用javaapi调用】 在这个实验中,我们将深入理解HBase在Hadoop生态系统中的角色,并掌握如何在Ubuntu 19.04操作系统上安装、配置和使用HBase,同时利用Java API进行编程。实验中使用的...

    Hbase shell及常用命令

    HBase Shell是一个封装了Java客户端API的JRuby应用软件,在HBase的HMaster主机上通过命令行输入hbase shell,即可进入HBase命令行环境。 HBase创建表(create命令) ------------------------ 在HBase中,基本组成...

    10-HBase Shell命令操作1

    在实际应用中,由于直接使用Shell命令插入数据效率较低,通常会通过编程方式操作HBase,如使用Java API或HBase的客户端库。此外,HBase还提供了丰富的命令和功能,如表的分区、数据压缩、数据复制等,使得它成为...

    hbase的java客户端api操作示例代码.zip

    虽然此示例代码主要关注Java API,但了解HBase Shell命令(如`create`、`put`、`get`、`scan`和`delete`)有助于理解API的底层逻辑,两者在操作上是相似的。 以上就是针对“hbase的java客户端api操作示例代码”的...

    实验三:熟悉常用的HBase操作

    总的来说,实验三旨在使你熟悉HBase的基本操作,包括使用Shell命令和Java API。掌握这些技能后,你将能够更有效地在大数据环境中管理和操作数据。在实际工作中,HBase常用于实时查询和大数据分析,是许多大型互联网...

    大数据技术原理及应用课实验3 熟悉常用的HBase操作 林子雨实验

    通过这个实验,参与者深入理解了HBase如何在Hadoop架构中协同工作,掌握了HBase Shell命令的基本操作,并学会了使用Java API进行高级数据操作。这对于理解和应用大数据处理技术,尤其是在实时数据存储和分析场景中,...

    Hbase实验报告.pdf

    HBase Shell是HBase提供的命令行界面,用户可以通过它来与HBase集群交互。在开始实验之前,确保已经正确安装并配置了Hadoop和HBase环境。 ### 2. 创建表 实验要求创建一个名为`student`的表,字段包括`Row Key`、`...

    hbase导出csv,文本,html文件

    1. **HBase条件查询**:使用HBase的Shell命令或者Java API,根据特定条件(如行键、列族、时间戳等)查询HBase中的数据。 2. **数据导入Hive**:创建一个Hive外部表,该表与HBase表结构对应,然后使用`LOAD DATA`...

    hadoop中安装hbase及创建表等.docx

    以上就是Hadoop中安装HBase的基本步骤,以及如何使用HBase Shell创建表和插入数据,以及通过Java API进行数据操作。理解并掌握这些基本操作是进行大数据处理和分析的基础。在实际项目中,根据需求,还需要考虑集群...

    HBase中文API

    - **使用脚本**: HBase Shell是基于JRuby的命令行工具,允许执行HBase操作。 - **Shell技巧**: 学习如何高效地编写和运行Shell脚本进行数据管理。 5. **数据模型** - **概念视图**: 数据以表格形式存在,包含行...

    Hbase 安装与基本使用

    1. **创建表**:使用HBase shell或Java API,通过`create '表名', '列族'`命令创建表,例如`create 'users', 'info'`创建名为users的表,列族为info。 2. **插入数据**:插入数据通过`put '表名', '行键', '列族:列...

    hbase 完全使用手册

    在使用 HBase 时,用户需要熟悉 HBase Shell 命令行工具或者 HBase 提供的 Java API 来进行数据的读写操作。HBase Shell 提供了一个交互式的界面,允许用户执行数据操作、管理表结构、以及维护集群状态等。Java API ...

    hbase 0.9 api

    首先,HBase的API主要分为两种:Java API和Shell命令。Java API是面向开发者的,用于在Java程序中与HBase进行交互,而Shell命令则提供了命令行接口,方便管理员进行管理和查询。 1. **连接与表管理**: - `HBase...

    hbase用于查询客户端工具

    1. **HBase Shell**:这是HBase自带的一个命令行接口,用户可以通过Java REPL(Read-Eval-Print Loop)与HBase交互。HBase Shell提供了创建表、删除表、插入数据、查询数据等基本操作,同时也支持复杂的条件查询和...

    hbase-client

    HBase客户端可以是命令行界面(HBase Shell)、Java API、或者各种语言的客户端库,如Python、Ruby、PHP等。HBaseClient_1.6.1_64.exe可能是针对Windows系统的HBase客户端安装程序,便于用户在Windows环境下快速部署...

    Difference between HBase and RDBMS

    - HBase主要通过Java API或类似HBase shell的工具进行操作,查询功能相对简单,但在大数据处理中可以配合MapReduce或Spark进行高效计算。 6. 应用场景: - RDBMS适用于需要事务处理、复杂查询和数据一致性的业务...

    【HBase企业应用开发】工作中自己总结的Hbase文档,非常全面!

    HBaseshell的基本用法包括创建表和列族、插入数据、按设计的表结构插入值、根据键值查询数据、扫描所有数据、删除指定数据、修改表结构、统计行数、执行disable和enable操作、表的删除以及hbaseshell脚本的使用。...

    java大数据作业_3HBase

    使用Java集合的代码描述HBase的表结构 在HBase中,表结构由一系列的行组成,每行都有唯一的row key,并且每个单元格都存储在列族下。为了描述这样一个表结构,我们可以使用Java中的Map来表示列族,List来表示具体...

Global site tag (gtag.js) - Google Analytics