HBase JavaAPI操作示例
package testHBase; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.util.Bytes; public class TestHBase {
static Configuration cfg = HBaseConfiguration.create(); //得到配置对象
public static void create(String tableName ,String columnFamily) throws Exception{
HBaseAdmin admin = new HBaseAdmin(cfg); //得到HBaseAdmin对象,用于操作HBase
if(admin.tableExists(tableName)){
System.out.println("Table" + tableName + " Exists!");
System.exit(0);
}
else{
HTableDescriptor tableDesc = new HTableDescriptor(tableName); //得到表描述对象 创建表时用到
tableDesc.addFamily(new HColumnDescriptor(columnFamily)); //HColumnDescriptor 列族描述对象
admin.createTable(tableDesc); //创建表
System.out.println("Table " + tableName + " Success!");
}
} static void put(String tableName,String row,String columnFamily,String column,String data) throws Exception{
HTable table = new HTable(cfg,tableName); //得到表对象
Put put = new Put(Bytes.toBytes(row)); //插入数据
put.add(Bytes.toBytes(columnFamily), Bytes.toBytes(column),Bytes.toBytes(data));
table.put(put);
System.out.println("put " + row +"," + "columnFamily:" + column + "," + data); } static void get(String tableName,String row) throws Exception{
HTable table = new HTable(cfg,tableName);
Get get = new Get(Bytes.toBytes(row));//获取行数据
Result result = table.get(get);
System.out.println("Get: " + result);
} static void scan(String tableName) throws Exception{
HTable table = new HTable(cfg,tableName);
Scan scan = new Scan(Bytes.toBytes(tableName)); ///扫描全表
ResultScanner rs = table.getScanner(scan);
for(Result r : rs){
System.out.println("Scan: " + r);
}
} static boolean delete(String tableName) throws Exception{
HBaseAdmin admin = new HBaseAdmin(cfg);
if(admin.tableExists(tableName)){
admin.disableTable(tableName); //先disable
System.out.println("Disable Table " + tableName + " Success!");
admin.deleteTable(tableName); //再删除
System.out.println("Delete Table " + tableName + " Success!");
}
return true; } public static void main(String[] args) throws Exception {
cfg.set("hbase.master", "hadoop:60000");
cfg.set("hbase.rootdir", "hdfs://hadoop:9000/hbase");
cfg.set("hbase.zookeeper.quorum", "hadoop"); String tableName = "hbase_test";
String columnFamily = "cf";
create(tableName, columnFamily);
put(tableName,"row1",columnFamily,"c1","data");
scan(tableName);
get(tableName,"row1");
delete(tableName); }
}
HBase JavaAPI操作示例的更多相关文章
- HBase Java简单示例
Hbase采用Java实现,原生客户端也是Java实现,其他语言需要通过thritf接口服务间接访问Hbase的数据. Hbase作为大数据存储数据库,其写能力非常强,加上Hbase本身就脱胎于Had ...
- HBase + Kerberos 配置示例(二)
接上篇<HBase + Kerberos配置示例(一)>,我们继续剩下的配置工作. 环境准备 Hadoop配置 Zookeeper配置 HBase配置 Java测试程序 环境准备 安装ha ...
- HBase Java简单示例--转载
Hbase采用Java实现,原生客户端也是Java实现,其他语言需要通过thritf接口服务间接访问Hbase的数据. Hbase作为大数据存储数据库,其写能力非常强,加上Hbase本身就脱胎于Had ...
- HBase JavaAPI
一.概念 1.对HBase JavaAPI的概述: 01.hbase使用java语言编写,自然支持java编程 02.支持CRUD操作 03.JavaAPI包含了所有的hbase的shell,甚至比这 ...
- 5.Hbase API 操作开发
Hbase API 操作开发需要连接Zookeeper进行节点的管理控制 1.配置 HBaseConfiguration: 包:org.apache.hadoop.hbase.HBaseConfigu ...
- Hudi 数据湖的插入,更新,查询,分析操作示例
Hudi 数据湖的插入,更新,查询,分析操作示例 作者:Grey 原文地址: 博客园:Hudi 数据湖的插入,更新,查询,分析操作示例 CSDN:Hudi 数据湖的插入,更新,查询,分析操作示例 前置 ...
- HBase Shell操作
Hbase 是一个分布式的.面向列的开源数据库,其实现是建立在google 的bigTable 理论之上,并基于hadoop HDFS文件系统. Hbase不同于一般的关系型数据库(RDBMS ...
- hbase连接操作
hbase连接操作 package com.test; import java.io.IOException; import org.apache.hadoop.conf.Configuration; ...
- hbase日常操作及维护
一,基本命令: 建表:create 'testtable','coulmn1','coulmn2' 也可以建表时加coulmn的属性如:create 'testtable',{NAME => ' ...
随机推荐
- js设置鼠标悬停改变背景色
看了网上那么多的js鼠标悬停时事件,大多数的,说了那么多话,也没解决什么问题,现在直接贴上代码,以供参考 html: <div id="sign">this is te ...
- Mysql字符集设置
转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...
- XML文件(1)--使用DOM示例
其他依赖字段/方法 // 书籍列表 private List<Book> bookList = new LinkedList<Book>(); /** * 根据xml文件,得到 ...
- 移动Web初级入门
最好的阅读是输出. –玉伯 即将开始涉入移动Web了,有点小兴奋也有点小紧张,希望能在未来的团队里带来一些价值.记录一下我现在所认识的移动Web. 原文摘自我的前端博客,欢迎大家来访问 原文地址:ht ...
- R自动数据收集第二章HTML笔记2(主要关于htmlTreeParse函数)
包含以下几个小的知识点 1htmlTreeParse函数源码和一些参数 2hander的写法 3关于missing函数 4关于if-else语句中else语句的花括号问题 5关于checkHandle ...
- runtime
7.runtime实现的机制是什么,怎么用,一般用于干嘛. 你还能记得你所使用的相关的头文件或者某些方法的名称吗? 运行时机制,runtime库里面包含了跟类.成员变量.方法相关的API,比如获取类里 ...
- 用Java来写常见的排序算法
随着校招的临近 算法是校招中很重要的一个部分 总结了常见几种排序算法,各种算法的时间复杂度和空间复杂度大家也需要多了解下 package com.huwei.sort; /** * 各种排序算法 * ...
- c++文件输入输出流fstream,对输入>>和输出<<重载
1. fstream 继承自iostream --> 要包含头文件#include<fstream> 2. 建立文件流对象 3. 打开文件夹 4. 测试是否打开成功 5. 进行读写操 ...
- (总结)隐藏PHP版本与PHP基本安全设置
为了安全起见,最好还是将PHP版本隐藏,以避免一些因PHP版本漏洞而引起的攻击. 1.隐藏PHP版本就是隐藏 “X-Powered-By: PHP/5.2.13″ 这个信息. 方法很简单:编辑php. ...
- gitlab使用个人版v16.11
title: gitlab使用个人版v16.11 date: 2016-11-13 20:53:00 tags: [gitlab] --- 1.安装gitbash 附上地址链接:git 2.配置git ...