hbase Java API 介绍及使用示例
几个相关类与HBase数据模型之间的对应关系
| java类 | HBase数据模型 |
| HBaseAdmin | 数据库(DataBase) |
| HBaseConfiguration | |
| HTable | 表(Table) |
| HTableDescriptor | 列族(Column Family) |
| Put | 列修饰符(Column Qualifier) |
| Get | |
| Scanner |
| 返回值 | 函数 | 描述 |
| void | addResource(Path file) | 通过给定的路径所指的文件来添加资源 |
| void | clear() | 清空所有已设置的属性 |
| string | get(String name) | 获取属性名对应的值 |
| String | getBoolean(String name, boolean defaultValue) | 获取为boolean类型的属性值,如果其属性值类型部位boolean,则返回默认属性值 |
| void | set(String name, String value) | 通过属性名来设置值 |
| void | setBoolean(String name, boolean value) | 设置boolean类型的属性值 |
用法示例:
HBaseConfiguration hconfig = new HBaseConfiguration();
hconfig.set("hbase.zookeeper.property.clientPort","");
该方法设置了"hbase.zookeeper.property.clientPort"的端口号为2181。一般情况下,HBaseConfiguration会使用构造函数进行初始化,然后在使用其他方法。
| 返回值 | 函数 | 描述 |
| void | addColumn(String tableName, HColumnDescriptor column) | 向一个已经存在的表添加列 |
| checkHBaseAvailable(HBaseConfiguration conf) | 静态函数,查看HBase是否处于运行状态 | |
| createTable(HTableDescriptor desc) | 创建一个表,同步操作 | |
| deleteTable(byte[] tableName) | 删除一个已经存在的表 | |
| enableTable(byte[] tableName) | 使表处于有效状态 | |
| disableTable(byte[] tableName) | 使表处于无效状态 | |
| HTableDescriptor[] | listTables() | 列出所有用户控件表项 |
| void | modifyTable(byte[] tableName, HTableDescriptor htd) | 修改表的模式,是异步的操作,可能需要花费一定的时间 |
| boolean | tableExists(String tableName) | 检查表是否存在 |
HBaseAdmin admin = new HBaseAdmin(config);
admin.disableTable("tablename")
| 返回值 | 函数 | 描述 |
| void | addFamily(HColumnDescriptor) | 添加一个列族 |
| HColumnDescriptor | removeFamily(byte[] column) | 移除一个列族 |
| byte[] | getName() | 获取表的名字 |
| byte[] | getValue(byte[] key) | 获取属性的值 |
| void | setValue(String key, String value) | 设置属性的值 |
HTableDescriptor htd = new HTableDescriptor(table);
htd.addFamily(new HcolumnDescriptor("family"));
| 返回值 | 函数 | 描述 |
| byte[] | getName() | 获取列族的名字 |
| byte[] | getValue(byte[] key) | 获取对应的属性的值 |
| void | setValue(String key, String value) | 设置对应属性的值 |
HTableDescriptor htd = new HTableDescriptor(tablename);
HColumnDescriptor col = new HColumnDescriptor("content:");
htd.addFamily(col);
此例添加了一个content的列族
| 返回值 | 函数 | 描述 |
| void | checkAdnPut(byte[] row, byte[] family, byte[] qualifier, byte[] value, Put put) | 自动的检查row/family/qualifier是否与给定的值匹配 |
| void | close() | 释放所有的资源或挂起内部缓冲区中的更新 |
| Boolean | exists(Get get) | 检查Get实例所指定的值是否存在于HTable的列中 |
| Result | get(Get get) | 获取指定行的某些单元格所对应的值 |
| byte[][] | getEndKeys() | 获取当前一打开的表每个区域的结束键值 |
| ResultScanner | getScanner(byte[] family) | 获取当前给定列族的scanner实例 |
| HTableDescriptor | getTableDescriptor() | 获取当前表的HTableDescriptor实例 |
| byte[] | getTableName() | 获取表名 |
| static boolean | isTableEnabled(HBaseConfiguration conf, String tableName) | 检查表是否有效 |
| void | put(Put put) | 向表中添加值 |
HTable table = new HTable(conf, Bytes.toBytes(tablename));
ResultScanner scanner = table.getScanner(family);
| 返回值 | 函数 | 描述 |
| Put | add(byte[] family, byte[] qualifier, byte[] value) | 将指定的列和对应的值添加到Put实例中 |
| Put | add(byte[] family, byte[] qualifier, long ts, byte[] value) | 将指定的列和对应的值及时间戳添加到Put实例中 |
| byte[] | getRow() | 获取Put实例的行 |
| RowLock | getRowLock() | 获取Put实例的行锁 |
| long | getTimeStamp() | 获取Put实例的时间戳 |
| boolean | isEmpty() | 检查familyMap是否为空 |
| Put | setTimeStamp(long timeStamp) | 设置Put实例的时间戳 |
HTable table = new HTable(conf,Bytes.toBytes(tablename));
Put p = new Put(brow);//为指定行创建一个Put操作
p.add(family,qualifier,value);
table.put(p);
| 返回值 | 函数 | 描述 |
| Get | addColumn(byte[] family, byte[] qualifier) | 获取指定列族和列修饰符对应的列 |
| Get | addFamily(byte[] family) | 通过指定的列族获取其对应列的所有列 |
| Get | setTimeRange(long minStamp,long maxStamp) | 获取指定取件的列的版本号 |
| Get | setFilter(Filter filter) | 当执行Get操作时设置服务器端的过滤器 |
HTable table = new HTable(conf, Bytes.toBytes(tablename));
Get g = new Get(Bytes.toBytes(row));
| 返回值 | 函数 | 描述 |
| boolean | containsColumn(byte[] family, byte[] qualifier) | 检查指定的列是否存在 |
| NavigableMap<byte[],byte[]> | getFamilyMap(byte[] family) | 获取对应列族所包含的修饰符与值的键值对 |
| byte[] | getValue(byte[] family, byte[] qualifier) | 获取对应列的最新值 |
九、ResultScanner
| 返回值 | 函数 | 描述 |
| void | close() | 关闭scanner并释放分配给它的资源 |
| Result | next() | 获取下一行的值 |
hbase Java API 介绍及使用示例的更多相关文章
- HBase总结(十一)hbase Java API 介绍及使用示例
几个相关类与HBase数据模型之间的对应关系 java类 HBase数据模型 HBaseAdmin 数据库(DataBase) HBaseConfiguration HTable 表(Table) H ...
- HBase总结(十一)hbase Java API 介绍及使用演示样例
几个相关类与HBase数据模型之间的相应关系 java类 HBase数据模型 HBaseAdmin 数据库(DataBase) HBaseConfiguration HTable 表(Table) H ...
- 【Hbase学习之三】Hbase Java API
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-2.6.5 hbase-0.98.12.1-h ...
- hbase java API跟新数据,创建表
package hbaseCURD; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import o ...
- HBase 学习之路(六)——HBase Java API 的基本使用
一.简述 截至到目前(2019.04),HBase 有两个主要的版本,分别是1.x 和 2.x ,两个版本的Java API有所不同,1.x 中某些方法在2.x中被标识为@deprecated过时.所 ...
- HBase 系列(六)——HBase Java API 的基本使用
一.简述 截至到目前 (2019.04),HBase 有两个主要的版本,分别是 1.x 和 2.x ,两个版本的 Java API 有所不同,1.x 中某些方法在 2.x 中被标识为 @depreca ...
- hbase java api样例(版本1.3.1,新API)
hbase版本:1.3.1 目的:HBase新API的使用方法. 尝试并验证了如下几种java api的使用方法. 1.创建表 2.创建表(预分区) 3.单条插入 4.批量插入 5.批量插入(客户端缓 ...
- Spark基础与Java Api介绍
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3832405.html 一.Spark简介 1.什么是Spark 发源于AMPLab实验室的分布式内存计 ...
- HBase Java API类介绍
几个相关类与HBase数据模型之间的对应关系 java类 HBase数据模型 HBaseAdmin 数据库(DataBase) HBaseConfiguration HTable 表(Table) H ...
随机推荐
- C语言----项目构建Make,Automake,CMake
http://blog.csdn.net/dc_726/article/details/48978849
- input 监听输入事件
$("#" + inputId).on("input", function () { var checkboxId = $("#" + in ...
- POJ 1837 Balance(01背包变形, 枚举DP)
Q: dp 数组应该怎么设置? A: dp[i][j] 表示前 i 件物品放入天平后形成平衡度为 j 的方案数 题意: 有一个天平, 天平的两侧可以挂上重物, 给定 C 个钩子和G个秤砣. 2 4 - ...
- 进程 vs. 线程(python的协程)(转廖雪峰老师python教程)
我们介绍了多进程和多线程,这是实现多任务最常用的两种方式.现在,我们来讨论一下这两种方式的优缺点. 首先,要实现多任务,通常我们会设计Master-Worker模式,Master负责分配任务,Work ...
- 淘宝cnpm(可替代nodejs默认npm)
淘宝 NPM 镜像 这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步. https://npm.taobao.org/
- 上传绕过WAF的tips大全
原始默认状态: ——WebKitFormBoundary2smpsxFB3D0KbA7D Content-Disposition: form-data; name=”filepath”; filena ...
- 你知道嵌入式C语言中各变量存储的位置吗?
局部变量.局部静态变量.全局变量.全局静态变量区别如下: 局部变量: 栈区: 局部静态变量:静态区: 全局变量: 静态区的常量区: 全局静态变量:静态区. 在进行C/C++编程时,需要程序员对内存的了 ...
- SpringMvc 400 Bad Request解决方法
今天做项目的时候突然报出400 Bad Request错误,后台没有出现任何问题. 首先我看了看log日志中没有接受到任何参数,可以确定这个请求并没有发送出去,所以应该是前台数据提交的问题. 然后我看 ...
- 【jQuery系列之插件】jQuery插件---exselect实现联动
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- 腾讯云大数据套件Hermes-MR索引插件使用总结
版权声明:本文由王亮原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/121 来源:腾云阁 https://www.qclou ...