java 操作 hbase_Java操作Hbase的基本操作
最基本的入门展示
package hbasetest;
import java.io.IOException;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
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.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
public class HelloHBase {
public static void main(String[] args) throws IOException, URISyntaxException {
//获取配置文件
Configuration conf= HBaseConfiguration.create();
conf.addResource(new Path(ClassLoader.getSystemResource("hbase-site.xml").toURI()));
conf.addResource(new Path(ClassLoader.getSystemResource("core-site.xml").toURI()));
//创建连接
try(Connection connection=ConnectionFactory.createConnection(conf);
Admin admin=connection.getAdmin()){
//定义表名
TableName tableName=TableName.valueOf("mytable6");
//定义表
HTableDescriptor table=new HTableDescriptor(tableName);
//定义列族
HColumnDescriptor mycf=new HColumnDescriptor("mycf");
//执行创建表操作
table.addFamily(new HColumnDescriptor(mycf));
admin.createTable(table);
admin.close();
connection.close();
}
}
基本的增删改查操作集合
package hbasetest;
import java.io.IOException;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.io.compress.Compression.Algorithm;
//import org.apache.hadoop.hbase.client.Delete;
//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.filter.Filter;
//import org.apache.hadoop.hbase.util.Bytes;
public class HelloHBase {
/**
* 检查mytable表是否存在,若存在则需要先删除
* @param admin
* @param table
* @throws IOException
*/
public static void createOrOvewrite(Admin admin, HTableDescriptor table)throws IOException{
if(admin.tableExists(table.getTableName())) {
admin.disableTable(table.getTableName());
admin.deleteTable(table.getTableName());
}
admin.createTable(table);
}
/**
* 建立mytable表
* @param config
* @throws IOException
*/
public static void createSchemaTables (Configuration config) throws IOException{
try(Connection connection=ConnectionFactory.createConnection(config);
Admin admin=connection.getAdmin()){
HTableDescriptor table=new HTableDescriptor(TableName.valueOf("mytable"));
table.addFamily(new HColumnDescriptor("mycf").setCompressionType(Algorithm.NONE));
System.out.print("Creating table.");
createOrOvewrite(admin,table);
System.out.println("Done.");
}
}
public static void modifySchema(Configuration config) throws IOException{
try(Connection connection=ConnectionFactory.createConnection(config);
Admin admin=connection.getAdmin()){
TableName tableName=TableName.valueOf("mytable");
if (!admin.tableExists(tableName)) {
System.out.println("Table does not exist.");
System.exit(-1);
}
//往mytable 里面添加newcf列族
HColumnDescriptor newColumn=new HColumnDescriptor("newcf");
newColumn.setCompactionCompressionType(Algorithm.GZ);
newColumn.setMaxVersions(HConstants.ALL_VERSIONS);
admin.addColumn(tableName, newColumn);
//获取表的定义
HTableDescriptor table=admin.getTableDescriptor(tableName);
//更新mycf这个列族
HColumnDescriptor mycf=new HColumnDescriptor("mycf");
newColumn.setCompactionCompressionType(Algorithm.GZ);
newColumn.setMaxVersions(HConstants.ALL_VERSIONS);
table.modifyFamily(mycf);
admin.modifyTable(tableName, table);
}
}
/**
* 删除表操作
* @param config
* @throws IOException
*/
public static void deleteSchema (Configuration config) throws IOException{
try(Connection connection=ConnectionFactory.createConnection(config);
Admin admin=connection.getAdmin()){
TableName tableName=TableName.valueOf("mytable");
//停用(disable)mytable
admin.disableTable(tableName);
//删除掉mycf列族
admin.deleteColumn(tableName, "mycf".getBytes("UTF-8"));
//删除mytable表(先停用再删除)
admin.deleteTable(tableName);
}
}
public static void main(String[] args) throws IOException, URISyntaxException {
Configuration config= HBaseConfiguration.create();
//添加必要的配置文件
config.addResource(new Path(ClassLoader.getSystemResource("hbase-site.xml").toURI()));
config.addResource(new Path(ClassLoader.getSystemResource("core-site.xml").toURI()));
config.set("hbase.zookeeper.quorum","47.106.221.38");
config.set("zookeeper.znode.parent", "/hbase");
config.set("hbase.client.retries.number", "3");
config.set("hbase.rpc.timeout", "2000");
config.set("hbase.client.operation.timeout", "3000");
config.set("hbase.client.scanner.timeout.period", "10000");
//建表
createSchemaTables(config);
//改表
modifySchema(config);
//删表
deleteSchema(config);
}
}
java 操作 hbase_Java操作Hbase的基本操作相关推荐
- java调用hbase_Java调用Hbase
1.java调用hbase时(hbase0.96)报以下错误: Exception in thread "main" java.io.IOException: java.lang. ...
- Java 使用itextPdf7操作pdf,写入照片这一篇就够了
Java 使用itextPdf7操作pdf,写入照片这一篇就够了 1. 效果图 1.1 M*N列图片(无边界&有边界) 1.2 图片重叠 1.3 文字背景图片 1.4 图片与文字相邻 & ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- java 字节数组 操作_Java-固定字节数组对象
我需要通过TCP / socket连接到第三方系统并检索一些数据. 将要发送的数据格式为固定长度格式和二进制. 请求示例: short MessageID = 5; int TransactionTr ...
- Java数组常见操作
Java数组常见操作 文章目录 Java数组常见操作 7.0 数组的遍历 1.使用foreach循环访问数组中每个元素. 2.使用简单的for循环(多层循环嵌套)来遍历数组. 7.1 数组长度 7.2 ...
- java 操作 ldap_JAVA操作LDAP总结
一.LDAP概念 LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP. LDAP目录为数据库, ...
- Java剪切板操作大全
转载自 Java剪切板操作大全 1. 概述 提起剪切板,一般都是在桌面系统或工具中使用.目前,操作Java剪切板有两种形式,这也对应着两种不同的技术Swing和JavaFX. 而剪切板有可以分为系 ...
- Java 使用 POI 操作 Excel
Apache POI 基本介绍 Apache POI 是 Apache 软件基金会提供的 100% 开源库.支持 Excel 库的所有基本功能. 图片来源:易百教程 基本概念 在 POI 中,Work ...
- Java本地文件操作
概述:Java本地文件操作,涉及到文件/文件夹的创建,文件/文件夹属性的读取与设置,文件/文件夹的重命名,目录结构的遍历,以及文件内容的读取与写入. File属于java.io.File. ---在E ...
最新文章
- 逃出你的肖申克(三):遇见20万年前的自己
- 数据降维(PCA、KPCA、PPCA)及C++实现
- php 登录重定向,PHP登录后重定向
- 阿里云云服务器的端口配置问题
- ApacheCN 人工智能知识树 v1.0
- 给Lisp程序员的Python简介
- numpy ndarray可用的常规函数
- 【安全】Web渗透测试(全流程)
- python简明教程3.0_Python 简明教程 --- 0,前言
- 在线计算机系统考试测试题,最新计算机考试题库及答案.docx
- 设计模式总览及工厂模式详解
- 二十四式长生图——清手抄本(扫描版)
- AI智能写作将改变文学创作的未来?
- 利用Python在互动吧网站自动抢票实战分析!你学废了吗
- 昨天同事lastday,把前端测试包扔线上去了
- 一文读懂图像三原色原理
- 微信接收QQ邮箱提醒
- java中的字符串排序
- 视频教程-少儿C++快乐编程-C/C++
- 达梦数据库DM8-DM数据迁移工具介绍和简单使用