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 => ' ...
随机推荐
- POI对Excel自定义日期格式的读取
用POI读取Excel数据:(版本号:POI3.7) 1.读取Excel private List<String[]> rosolveFile(InputStream is, String ...
- 【转载】--仅用 []()+! 就足以实现几乎任意Javascript代码
最近在做CTF的题目,遇见了一个都是[]()+!这样的文件,于是百度了一下,发现这个博客对这个有解释. G Reader里Dexter同学的分享,来自sla.ckers.org的又一神作 点我测试 G ...
- Stm32F107VCT6硬件资源
一直在用stm32系列的单片机,最近因为需要使用到以太网,所以采用了stm32f107vc这款芯片.对于存储资源一直不是非常清楚,今天专门到官网看了一下. 如下: RAM------>64kB ...
- C# HttpWebReqeust和HttpWebResponse发送请求
var request = (HttpWebRequest)WebRequest.Create("URL"); var data = Encoding.UTF8.GetBytes( ...
- 关于robotframework,app,appium的xpath定位问题及常用方法
关于类似的帖子好像很多,但是没有找到具体能帮我解决问题的办法.还是自己深究了好久才基本知道app上面的xpath定位和web上的不同点: 先放一个图: A,先说说不用xpath的场景,一般是用于存在i ...
- trap命令
一. [root@OEL6-38 arun]# vim yy.sh --------------------- 参考: http://blog.csdn.net/holandstone/article ...
- java.lang.NullPointerException的可能原因及处理
java.lang.NullPointerException的可能原因及处理 java.lang.NullPointerException具体意思是空指针异常,最常见的问题就是没有初始化. 字符串等数 ...
- 应用商店后台MIS的一些思考
1.有些签名验证的工作应该在开发者上传APP的时候进行校验: 1)如果是更新新版本(包名packagename一致),那么需要验证两个APK的包的签名是否一致,不一致的,应该限制上传,除非先下架旧的A ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- Team Foundation Server源代码管理多人开发的使用心得
问题1:多人使用TFS源代码管理器的时候,往往会造成同个文件内源代码不一致,覆盖别人的代码. 解决方案: 给多个人分配不同的开发任务,保证每个人修改的文件都不会重叠. 但有些情况无法避免多个人同时修改 ...