Hbase记录-HBase扫描/计数/权限
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扫描/计数/权限的更多相关文章
- Hbase记录-Hbase shell使用
HBase Shell HBase包含可以与HBase进行通信的Shell. HBase使用Hadoop文件系统来存储数据.它拥有一个主服务器和区域服务器.数据存储将在区域(表)的形式.这些区域被分割 ...
- Hbase记录-Hbase基础概念
HBase是什么? HBase是建立在Hadoop文件系统之上的分布式面向列的数据库.它是一个开源项目,是横向扩展的. HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数 ...
- Hbase记录-Hbase介绍
Hbase是什么 HBase是一种构建在HDFS之上的分布式.面向列的存储系统,适用于实时读写.随机访问超大规模数据的集群. HBase的特点 大:一个表可以有上亿行,上百万列. 面向列:面向列表(簇 ...
- Hbase记录-HBase性能优化指南
垃圾回收优化当region服务器处理大量的写入负载时,繁重的任务会迫使JRE默认的内存分配策略无法保证程序的稳定性 所以我们可能需要对region服务器的垃圾回收机制进行一些参数调整(因为master ...
- Hbase记录-Hbase配置项
hbase.tmp.dir:本地文件系统的临时目录,默认是java.io.tmpdir/hbase−java.io.tmpdir/hbase−{user.name}: hbase.rootdir:hb ...
- Hbase记录-HBase增删改查
HBase创建数据 本章将介绍如何在HBase表中创建的数据.要在HBase表中创建的数据,可以下面的命令和方法: put 命令, add() - Put类的方法 put() - HTable 类 ...
- Hbase记录-HBase客户端API
本章介绍用于对HBase表上执行CRUD操作的HBase Java客户端API. HBase是用Java编写的,并具有Java原生API.因此,它提供了编程访问数据操纵语言(DML). HBaseCo ...
- Hbase记录-HBase基本操作(一)
HBase创建表 可以使用命令创建一个表,在这里必须指定表名和列族名.在HBase shell中创建表的语法如下所示. create ‘<table name>’,’<column ...
- Hbase记录-Hbase shell使用命令
1.进入hbase shell 执行./bin/hbase shell 2.进入后,help 帮助信息,如可以使用help 'create' 3.创建表:create 'test','cf' 表 ...
随机推荐
- 正则表达式(java)
概念: 正则表达式,又称规则表达式.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念. 正则表通常被用来检索.替换那些符合某个模式( ...
- vue路由异步组件案例
最近研究了vue性能优化,涉及到vue异步组件.一番研究得出如下的解决方案. 原理:利用webpack对代码进行分割是异步调用组件前提.异步组件在优先级上让位同步组件.下面介绍的是怎么实现异步组件. ...
- ubuntu软件安装位置
有时候需要配置ubuntu安装的软件,一般安装软件都是使用apt-get install.那么安装完后,软件的安装目录在哪里呢,可执行文件又放在哪里呢. A.下载的软件的存放位置:/var/cache ...
- Ajax 新建对象
XMLHttpRequest对象是Ajax的基础,用于后台与服务器进行数据交互. 新的浏览器支撑XMLHttpRequest,而旧的浏览器不支持. var vari; if(window.XMLHtt ...
- Java之JSON操作(gson)
使用gson包操作JSON数据. 依赖包:gson-2.8.2.jar <dependency> <groupId>com.google.code.gson</group ...
- Pairs Forming LCM LightOJ - 1236 (算术基本定理)
题意: 就是求1-n中有多少对i 和 j 的最小公倍数为n (i <= j) 解析: 而这题,我们假设( a , b ) = n ,那么: n=pk11pk22⋯pkss, a=pd11pd2 ...
- Leetcode 217.存在重复元素 By Python
给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出: true ...
- 洛谷 P4137 Rmq Problem /mex 解题报告
P4137 Rmq Problem /mex 题意 给一个长为\(n(\le 10^5)\)的数列\(\{a\}\),有\(m(\le 10^5)\)个询问,每次询问区间的\(mex\) 可以莫队然后 ...
- bzoj3277 串 (后缀数组+二分答案+ST表)
常见操作:先把所有串都连到一起,但中间加上一个特殊的符号(不能在原串中/出现过)作为分割 由于全部的子串就等于所有后缀的所有前缀,那我们对于每一个后缀,去求一个最长的前缀,来满足这个前缀在至少K个原串 ...
- StringTokenizer 的性能看来真的不用担心
一直以来,分析HTTP的Header使用的都是StringTokenizer,但是看过jdk中关于StringTokenizer的介绍: StringTokenizer 是出于兼容性的原因而被保留的遗 ...