hbase的api操作
创建maven工程,修改jdk
pom文件里添加需要的jar包
dependencies>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-it</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.1</version>
</dependency>
</dependencies>
import java.io.IOException;
import java.util.ArrayList; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
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 CreateTableTest { static Configuration conf = HBaseConfiguration.create();//读取hbase的配置文件 static HBaseAdmin admin = null;//执行管理员 public static void main(String[] args) throws Exception{ admin=new HBaseAdmin(conf);
// createTable();
// listTable();
// deleteTable();
// listTable();
// putData();
// scanTable();
getData();
// putaLots(); }
//创建表
public static void createTable() throws Exception, IOException{
//表的描述对象
HTableDescriptor table=new HTableDescriptor(TableName.valueOf("javaemp1"));
//列簇
table.addFamily(new HColumnDescriptor("personal"));
table.addFamily(new HColumnDescriptor("professional")); admin.createTable(table);
System.out.println("create table finished");
}
//列出所有的表
public static void listTable() throws IOException{
HTableDescriptor[] Tablelist = admin.listTables();
for(int i=0;i<Tablelist.length;i++)
{
System.out.println(Tablelist[i].getNameAsString());
}
}
//删除表
public static void deleteTable() throws Exception{
//删表之前先禁用表
// admin.disableTable("javaemp1");
// admin.deleteTable("javaemp1");
// System.out.println("delete finished"); //删除表中的某一列簇
// admin.deleteColumn("javaemp","professional");
// System.out.println("delete column"); //增加一列
admin.addColumn("javaemp",new HColumnDescriptor("professional"));
System.out.println("add column"); }
//----------------------------------------------------------------------------------------------------------
//插入数据
public static void putData() throws Exception{
//HTable类实现对单个表的操作,参数为:配置对象,表名
HTable table = new HTable(conf,"javaemp"); Put p = new Put(Bytes.toBytes("1001"));//实例化Put类,指定rwo key来操作
Put p1=new Put(Bytes.toBytes("1002"));
//
p.add(Bytes.toBytes("personal"),Bytes.toBytes("name"),Bytes.toBytes("lalisa"));
// 参数:列簇,列,值
p.add(Bytes.toBytes("personal"),Bytes.toBytes("city"),Bytes.toBytes("beijing")); table.put(p); p1.add(Bytes.toBytes("professional"),Bytes.toBytes("designation"),Bytes.toBytes("it"));
p1.add(Bytes.toBytes("professional"),Bytes.toBytes("salary"),Bytes.toBytes("16010")); table.put(p1); System.out.println("put data finished"); table.close();//释放HTable的资源
}
//批量插入数据
public static void putaLots() throws IOException{
HTable table = new HTable(conf,"javaemp");
ArrayList<Put> list = new ArrayList<Put>(10);
for (int i=0;i<10;i++)
{
Put put = new Put(Bytes.toBytes("row"+i));
put.add(Bytes.toBytes("personal"),Bytes.toBytes("name"),Bytes.toBytes("people"+i));
list.add(put);
}
table.put(list);
System.out.println("put list finished");
}
//获取某一列数据
public static void getData() throws IOException{
HTable table = new HTable(conf, "javaemp"); Get get = new Get(Bytes.toBytes("1001"));//实例化Get类 Result result = table.get(get);//获取这一row的数据 // 输出这一行的某一个字段
byte[] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
String name=Bytes.toString(value);
System.out.println("Name:"+name); //输出这一行的所有数据
Cell[] cells = result.rawCells();
for(Cell cell:cells)
{
System.out.print(Bytes.toString(CellUtil.cloneRow(cell))+"--");
System.out.print(Bytes.toString(CellUtil.cloneFamily(cell))+":");
System.out.print(Bytes.toString(CellUtil.cloneQualifier(cell))+"->");
System.out.println(Bytes.toString(CellUtil.cloneValue(cell))); } table.close();//释放HTable的资源
}
//scan某一列
public static void scanTable() throws IOException{
HTable table = new HTable(conf, "javaemp");
Scan scan = new Scan(); // 实例化Scan类
scan.addColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));//scan某列簇的某列
scan.addFamily(Bytes.toBytes("professional"));//scan某列簇
ResultScanner scanner = table.getScanner(scan); for(Result res=scanner.next();res!=null;res=scanner.next())
{
System.out.println(res);
}
table.close();//释放HTable的资源
}
//统计row key的个数
public static void count(){ }
//关闭hbase
public static void close() throws IOException{
admin.shutdown();
}
}
package com.neworigin.Work; import java.io.IOException;
import java.util.ArrayList; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
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 HbaseWork { static Configuration conf=HBaseConfiguration.create();
// static Connection conn= ConnectionFactory.createConnection(conf);
static HBaseAdmin admin=null;
public static void createTable() throws IOException{
HTableDescriptor table=new HTableDescriptor(TableName.valueOf("member"));
table.addFamily(new HColumnDescriptor("member_id"));
table.addFamily(new HColumnDescriptor("address"));
table.addFamily(new HColumnDescriptor("info"));
admin.createTable(table);
System.out.println("create table finished");
}
public static void deletefamily() throws IOException{
// HTableDescriptor table = new HTableDescriptor(TableName.valueOf("member"));
admin.deleteColumn("member", "member_id");
System.out.println("delete");
}
public static void insertdata() throws IOException{
HTable table = new HTable(conf,"member");
ArrayList<Put> list =new ArrayList<Put>(25);
for(int i=0;i<5;i++)
{
Put put = new Put(Bytes.toBytes("row"+i));
put.add(Bytes.toBytes("address"), Bytes.toBytes("province"), Bytes.toBytes("pr"+i));
put.add(Bytes.toBytes("address"), Bytes.toBytes("city"), Bytes.toBytes("ct"+i));
put.add(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("2"+i));
put.add(Bytes.toBytes("info"), Bytes.toBytes("birthday"), Bytes.toBytes("data"+i));
put.add(Bytes.toBytes("info"), Bytes.toBytes("company"), Bytes.toBytes("com"+i));
list.add(put);
}
table.put(list);
}
public static void getinfo() throws IOException{
HTable table = new HTable(conf, "member");
// for(int i=0;i<5;i++)
// {
//
// }
Get get = new Get(Bytes.toBytes(("row0")));
Result result = table.get(get);
for(Cell cell: result.rawCells())
{
System.out.print(Bytes.toString(CellUtil.cloneRow(cell))+"--");
System.out.print(Bytes.toString(CellUtil.cloneFamily(cell))+":");
System.out.print(Bytes.toString(CellUtil.cloneQualifier(cell))+"->");
System.out.println(Bytes.toString(CellUtil.cloneValue(cell)));
} }
public static void alterfirstrow() throws IOException{
HTable table = new HTable(conf, "member");
Put put = new Put(Bytes.toBytes("row0"));
put.add(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("30"));
table.put(put);
}
public static void getage() throws IOException{
HTable table = new HTable(conf,"member");
Get get = new Get(Bytes.toBytes("row0"));
Result result = table.get(get);
byte[] bs = result.getValue(Bytes.toBytes("info"), Bytes.toBytes("age"));
String age=Bytes.toString(bs);
System.out.println("age:"+age);
}
public static void scanTable() throws IOException{
Scan scan = new Scan();
HTable table = new HTable(conf,"member");
scan.addColumn(Bytes.toBytes("address"), Bytes.toBytes("province"));
scan.addColumn(Bytes.toBytes("address"), Bytes.toBytes("city"));
scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("age"));
scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("birthday"));
scan.addColumn(Bytes.toBytes("info"), Bytes.toBytes("company"));
ResultScanner scanner = table.getScanner(scan);
for(Result res=scanner.next();res!=null;res=scanner.next())
{
System.out.println(res);
}
}
public static void countrow() throws IOException{
HTable table = new HTable(conf,"member");
Scan scan = new Scan();
ResultScanner scanner = table.getScanner(scan);
int i=0;
while(scanner.next()!=null)
{
i++;
// System.out.println(scanner.next());
}
System.out.println(i);
}
public static void delTable() throws IOException{
boolean b = admin.isTableEnabled("member");
if(b)
{
admin.disableTable("member");
}
admin.deleteTable("member");
}
public static void main(String[] args) throws IOException {
admin=new HBaseAdmin(conf);
// createTable();
// deletefamily();
// insertdata();
// alterfirstrow();
// getinfo();
// getage();
// scanTable();
// countrow();
delTable();
}
}
hbase的api操作的更多相关文章
- HBase伪分布式环境下,HBase的API操作,遇到的问题
在hadoop2.5.2伪分布式上,安装了hbase1.0.1.1的伪分布式 利用HBase的API创建个testapi的表时,提示 Exception in thread "main&q ...
- HBase学习之路 (四)HBase的API操作
Eclipse环境搭建 具体的jar的引入方式可以参考http://www.cnblogs.com/qingyunzong/p/8623309.html HBase API操作表和数据 import ...
- HBase(五)HBase的API操作
一.项目环境搭建 新建 Maven Project,新建项目后在 pom.xml 中添加依赖: <dependency> <groupId>org.apache.hbase&l ...
- hbase的api操作之过滤器
Comparison Filter: 对比过滤器: 1.RowFilter select * from ns1:t1 where rowkey <= row100 ...
- hbase的api操作之scan
扫描器缓存---------------- 面向行级别的. @Test public void getScanCache() throws IOException { Configu ...
- Java API 操作HBase Shell
HBase Shell API 操作 创建工程 本实验的环境实在ubuntu18.04下完成,首先在改虚拟机中安装开发工具eclipse. 然后创建Java项目名字叫hbase-test 配置运行环境 ...
- HBase 6、用Phoenix Java api操作HBase
开发环境准备:eclipse3.5.jdk1.7.window8.hadoop2.2.0.hbase0.98.0.2.phoenix4.3.0 1.从集群拷贝以下文件:core-site.xml.hb ...
- HBase API操作
|的ascII最大ctrl+shift+t查找类 ctrl+p显示提示 HBase API操作 依赖的jar包 <dependencies> <dependency> < ...
- Hbase Shell命令详解+API操作
HBase Shell 操作 3.1 基本操作1.进入 HBase 客户端命令行,在hbase-2.1.3目录下 bin/hbase shell 2.查看帮助命令 hbase(main):001:0& ...
随机推荐
- P3980 [NOI2008]志愿者招募
思路 巧妙的建图 因为每个志愿者有工作的时段,所以考虑让一个志愿者的流量能够从S流到T产生贡献 所以每个i向i+1连INF-a[x]的边(类似于k可重区间集),每个si向ti连边cap=INF,cos ...
- HIHOcoder 1403 后缀数组一·重复旋律
思路 后缀数组的板子题,注意后缀数组的rank[]数组是通过位置找到对应排名的,sa[]是通过排名找到位置的,height[i]记录的是sa[i]和sa[i+1]之间的lcp 不要写错了就行了 代码 ...
- Could not stop Cortex-M device! please check the JTAG cable的解决办法
今天程序烧录后,进行调试时keil提示:Could not stop Cortex-M device! please check the JTAG cable 如图: 于是我在网上搜了一下, ...
- 测试与CMMI质量体系
1. CMMI全称是Capability Maturity Model Integration,即能力成熟度模型集成(也有称为:软件能力成熟度集成模型) 其目的是帮助软件企业对软件工程过程进行管理和改 ...
- HDU 6203 ping ping ping(dfs序+LCA+树状数组)
http://acm.hdu.edu.cn/showproblem.php?pid=6203 题意: n+1 个点 n 条边的树(点标号 0 ~ n),有若干个点无法通行,导致 p 组 U V 无法连 ...
- js实现可视化区域内拖拽
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- Pandas 基础(3) - 生成 Dataframe 的几种方式
这一节想总结一下 生成 Dataframe 的几种方式: CSV Excel python dictionary List of tuples List of dictionary 下面分别一一介绍具 ...
- Oracle(字符函数)
单行函数语法: 语法:funcation_name(列 | 表达式[, 参数1, 参数2]) 单行函数主要分为以下几种: 字符函数:接收数据返回具体的字符信息 数值函数:对数字进行处理,例如:四舍五入 ...
- Reversion Count
字符串基础用法题,包含有大数减法大数除法模板,不难理解,代码如下: #include<stdio.h> #include<string.h> #include<strin ...
- PostgreSQL安装及使用教程一(exe安装方式)
下载安装 百度搜索PostgreSQL,进入官网,选择相应版本的图形化安装程序(BigSQL)安装即可 连接数据库 对数据库操作有两种方式,一种是通过命令行工具psql,另一种是通过图形化界面pgAd ...