HBase扫描

 

scan 命令用于查看HTable数据。使用 scan 命令可以得到表中的数据。它的语法如下:

scan ‘<table name>’

下面的示例演示了如何使用scan命令从表中读取数据。在这里读取的是emp表。

hbase(main):010:0> scan 'emp'

ROW                           COLUMN+CELL

1 column=personal data:city, timestamp=1417521848375, value=hyderabad

1 column=personal data:name, timestamp=1417521785385, value=ramu

1 column=professional data:designation, timestamp=1417585277,value=manager

1 column=professional data:salary, timestamp=1417521903862, value=50000

1 row(s) in 0.0370 seconds

使用Java API扫描

使用Java API扫描整个表的数据的完整程序如下:

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan; public class ScanTable{ public static void main(String args[]) throws IOException{ // Instantiating Configuration class
Configuration config = HBaseConfiguration.create(); // Instantiating HTable class
HTable table = new HTable(config, "emp"); // Instantiating the Scan class
Scan scan = new Scan(); // Scanning the required columns
scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("city")); // Getting the scan result
ResultScanner scanner = table.getScanner(scan); // Reading values from scan result
for (Result result = scanner.next(); result != null; result = Scanner.next()) System.out.println("Found row : " + result);
//closing the scanner
scanner.close();
}
}

编译和执行上述程序如下所示。

$javac ScanTable.java
$java ScanTable

下面列出的是输出:

Found row :
keyvalues={row1/personal:city/1418275612888/Put/vlen=5/mvcc=0,
row1/personal:name/1418035791555/Put/vlen=4/mvcc=0}

HBase计数和截断

 

count

可以使用count命令计算表的行数量。它的语法如下:

count ‘<table name>’

删除第一行后,表emp就只有两行。验证它,如下图所示。

hbase(main):023:0> count 'emp'
2 row(s) in 0.090 seconds
=> 2

truncate

此命令将禁止删除并重新创建一个表。truncate 的语法如下:

hbase> truncate 'table name'

下面给出是 truncate 命令的例子。在这里,我们已经截断了emp表。

hbase(main):011:0> truncate 'emp'
Truncating 'one' table (it may take a while):
- Disabling table...
- Truncating table...
0 row(s) in 1.5950 seconds

截断表之后,使用scan 命令来验证。会得到表的行数为零。

hbase(main):017:0> scan ‘emp’
ROW COLUMN+CELL
0 row(s) in 0.3110 seconds

HBase安全

我们可以授予和撤销HBase用户的权限。也有出于安全目的,三个命令:grant, revoke 和 user_permission.。

grant

grant命令授予特定的权限,如读,写,执行和管理表给定一个特定的用户。 grant命令的语法如下:

hbase> grant <user> <permissions> [<table> [<column family> [<column; qualifier>]]

我们可以从RWXCA组,其中给予零个或多个特权给用户

  • R - 代表读取权限
  • W - 代表写权限
  • X - 代表执行权限
  • C - 代表创建权限
  • A - 代表管理权限

下面给出是为用户“Tutorialspoint'授予所有权限的例子。

hbase(main):018:0> grant 'Tutorialspoint', 'RWXCA'

revoke

revoke命令用于撤销用户访问表的权限。它的语法如下:

hbase> revoke <user>

下面的代码撤消名为“Tutorialspoint”用户的所有权限。

hbase(main):006:0> revoke 'Tutorialspoint'

user_permission

此命令用于列出特定表的所有权限。 user_permission的语法如下:

hbase>user_permission ‘tablename’

下面的代码列出了“emp”表的所有用户权限。

hbase(main):013:0> user_permission 'emp'
 

Hbase记录-HBase扫描/计数/权限的更多相关文章

  1. Hbase记录-Hbase shell使用

    HBase Shell HBase包含可以与HBase进行通信的Shell. HBase使用Hadoop文件系统来存储数据.它拥有一个主服务器和区域服务器.数据存储将在区域(表)的形式.这些区域被分割 ...

  2. Hbase记录-Hbase基础概念

    HBase是什么? HBase是建立在Hadoop文件系统之上的分布式面向列的数据库.它是一个开源项目,是横向扩展的. HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数 ...

  3. Hbase记录-Hbase介绍

    Hbase是什么 HBase是一种构建在HDFS之上的分布式.面向列的存储系统,适用于实时读写.随机访问超大规模数据的集群. HBase的特点 大:一个表可以有上亿行,上百万列. 面向列:面向列表(簇 ...

  4. Hbase记录-HBase性能优化指南

    垃圾回收优化当region服务器处理大量的写入负载时,繁重的任务会迫使JRE默认的内存分配策略无法保证程序的稳定性 所以我们可能需要对region服务器的垃圾回收机制进行一些参数调整(因为master ...

  5. Hbase记录-Hbase配置项

    hbase.tmp.dir:本地文件系统的临时目录,默认是java.io.tmpdir/hbase−java.io.tmpdir/hbase−{user.name}: hbase.rootdir:hb ...

  6. Hbase记录-HBase增删改查

    HBase创建数据   本章将介绍如何在HBase表中创建的数据.要在HBase表中创建的数据,可以下面的命令和方法: put 命令, add() - Put类的方法 put() - HTable 类 ...

  7. Hbase记录-HBase客户端API

    本章介绍用于对HBase表上执行CRUD操作的HBase Java客户端API. HBase是用Java编写的,并具有Java原生API.因此,它提供了编程访问数据操纵语言(DML). HBaseCo ...

  8. Hbase记录-HBase基本操作(一)

    HBase创建表 可以使用命令创建一个表,在这里必须指定表名和列族名.在HBase shell中创建表的语法如下所示. create ‘<table name>’,’<column ...

  9. Hbase记录-Hbase shell使用命令

    1.进入hbase shell  执行./bin/hbase shell 2.进入后,help  帮助信息,如可以使用help 'create' 3.创建表:create 'test','cf'  表 ...

随机推荐

  1. [转载]Memory Limits for Windows and Windows Server Releases

    Memory Limits for Windows and Windows Server Releases This topic describes the memory limits for sup ...

  2. Qt_深入了解信号槽(signal&slot)

    转自豆子空间 信号槽机制是Qt编程的基础.通过信号槽,能够使Qt各组件在不知道对方的情形下能够相互通讯.这就将类之间的关系做了最大程度的解耦. 槽函数和普通的C++成员函数没有很大的区别.它们也可以使 ...

  3. Jquery ajax load(),get(),post()

    //load()用来加载html文档中的代码片段,添加到指定元素内部 //如果只加部分选定的元素可以.load("url 选择器") <!DOCTYPE html>&l ...

  4. PP生产订单成本的计划、控制和结算

    SAP系统成本分析功能关注订单的成本,通过对计划成本和实际成本的比较分析,可以发现成本控制上的问题,以便及时解决问题.1.订单成本计划在基础数据齐全的基础上,系统可以自动滚算生产订单的成本.生产订单计 ...

  5. Idea解决打开大文件消耗CPU问题

    dea打开大文件的时候,会导致cpu利用率变得特别高,我这边八核i7的配置下,cpu依然飙到了600%~700%,这个时候就需要修改idea的配置(下面以Ubuntu为例). 1.进入到idea安装目 ...

  6. jquery html 獲取或設置

    jquery提供操作html元素的屬性和內容的強大方法. DOM就是獨立于平台和語言的界面,允許程序和腳本動態訪問和改變DOM的內容,結構和樣式. 獲取內容:text(),html(),val(),a ...

  7. Ubuntu 16.04安装Eclipse

    此篇为http://www.cnblogs.com/EasonJim/p/7139275.html的分支页. 前提:必须正确安装JDK和Tomcat. 下载: https://www.eclipse. ...

  8. Codeforces925C Big Secret 【构造】【贪心】

    题目大意:给出异或差分序列,要你任意排列使得原序列递增. 题目分析: 我们在使得异或结果递增的过程中总能找到一个值使得它的最高位的1对应当前值的0.那么我们贪心的选择最高位最低的一个任意值使得它满足这 ...

  9. Problem B. Harvest of Apples HDU - 6333(莫队)

    Problem Description There are n apples on a tree, numbered from 1 to n.Count the number of ways to p ...

  10. 自学Linux Shell11.2-echo命令

    点击返回 自学Linux命令行与Shell脚本之路 11.2-echo命令 echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用. 语 法:echo [-n][字符串]或 echo [- ...