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(); }
相关推荐
在本实验中,我们将使用 HBase Shell API 来实现基本的数据操作,包括创建表、查看所有表、插入数据等。 HBase 配置和连接 在使用 HBase Shell API 之前,需要首先配置 HBase 的连接信息。在本实验中,我们使用的...
可以通过HBase Shell命令来查看是否成功执行了Java API的操作,例如,`hbase hbasetest.jar hbase.java.txt` 可能是一个运行包含上述操作的Java程序,并输出结果到`hbase.java.txt`的命令。 以上就是HBase常用Java...
【大数据实验Hbase安装部署和使用javaapi调用】 在这个实验中,我们将深入理解HBase在Hadoop生态系统中的角色,并掌握如何在Ubuntu 19.04操作系统上安装、配置和使用HBase,同时利用Java API进行编程。实验中使用的...
HBase Shell是一个封装了Java客户端API的JRuby应用软件,在HBase的HMaster主机上通过命令行输入hbase shell,即可进入HBase命令行环境。 HBase创建表(create命令) ------------------------ 在HBase中,基本组成...
在实际应用中,由于直接使用Shell命令插入数据效率较低,通常会通过编程方式操作HBase,如使用Java API或HBase的客户端库。此外,HBase还提供了丰富的命令和功能,如表的分区、数据压缩、数据复制等,使得它成为...
虽然此示例代码主要关注Java API,但了解HBase Shell命令(如`create`、`put`、`get`、`scan`和`delete`)有助于理解API的底层逻辑,两者在操作上是相似的。 以上就是针对“hbase的java客户端api操作示例代码”的...
总的来说,实验三旨在使你熟悉HBase的基本操作,包括使用Shell命令和Java API。掌握这些技能后,你将能够更有效地在大数据环境中管理和操作数据。在实际工作中,HBase常用于实时查询和大数据分析,是许多大型互联网...
通过这个实验,参与者深入理解了HBase如何在Hadoop架构中协同工作,掌握了HBase Shell命令的基本操作,并学会了使用Java API进行高级数据操作。这对于理解和应用大数据处理技术,尤其是在实时数据存储和分析场景中,...
HBase Shell是HBase提供的命令行界面,用户可以通过它来与HBase集群交互。在开始实验之前,确保已经正确安装并配置了Hadoop和HBase环境。 ### 2. 创建表 实验要求创建一个名为`student`的表,字段包括`Row Key`、`...
1. **HBase条件查询**:使用HBase的Shell命令或者Java API,根据特定条件(如行键、列族、时间戳等)查询HBase中的数据。 2. **数据导入Hive**:创建一个Hive外部表,该表与HBase表结构对应,然后使用`LOAD DATA`...
以上就是Hadoop中安装HBase的基本步骤,以及如何使用HBase Shell创建表和插入数据,以及通过Java API进行数据操作。理解并掌握这些基本操作是进行大数据处理和分析的基础。在实际项目中,根据需求,还需要考虑集群...
- **使用脚本**: HBase Shell是基于JRuby的命令行工具,允许执行HBase操作。 - **Shell技巧**: 学习如何高效地编写和运行Shell脚本进行数据管理。 5. **数据模型** - **概念视图**: 数据以表格形式存在,包含行...
1. **创建表**:使用HBase shell或Java API,通过`create '表名', '列族'`命令创建表,例如`create 'users', 'info'`创建名为users的表,列族为info。 2. **插入数据**:插入数据通过`put '表名', '行键', '列族:列...
在使用 HBase 时,用户需要熟悉 HBase Shell 命令行工具或者 HBase 提供的 Java API 来进行数据的读写操作。HBase Shell 提供了一个交互式的界面,允许用户执行数据操作、管理表结构、以及维护集群状态等。Java API ...
首先,HBase的API主要分为两种:Java API和Shell命令。Java API是面向开发者的,用于在Java程序中与HBase进行交互,而Shell命令则提供了命令行接口,方便管理员进行管理和查询。 1. **连接与表管理**: - `HBase...
1. **HBase Shell**:这是HBase自带的一个命令行接口,用户可以通过Java REPL(Read-Eval-Print Loop)与HBase交互。HBase Shell提供了创建表、删除表、插入数据、查询数据等基本操作,同时也支持复杂的条件查询和...
HBase客户端可以是命令行界面(HBase Shell)、Java API、或者各种语言的客户端库,如Python、Ruby、PHP等。HBaseClient_1.6.1_64.exe可能是针对Windows系统的HBase客户端安装程序,便于用户在Windows环境下快速部署...
- HBase主要通过Java API或类似HBase shell的工具进行操作,查询功能相对简单,但在大数据处理中可以配合MapReduce或Spark进行高效计算。 6. 应用场景: - RDBMS适用于需要事务处理、复杂查询和数据一致性的业务...
HBaseshell的基本用法包括创建表和列族、插入数据、按设计的表结构插入值、根据键值查询数据、扫描所有数据、删除指定数据、修改表结构、统计行数、执行disable和enable操作、表的删除以及hbaseshell脚本的使用。...
使用Java集合的代码描述HBase的表结构 在HBase中,表结构由一系列的行组成,每行都有唯一的row key,并且每个单元格都存储在列族下。为了描述这样一个表结构,我们可以使用Java中的Map来表示列族,List来表示具体...