java 操作 hbase_Java操作Hbase的基本操作
发布日期:2021-06-24 13:00:58 浏览次数:2 分类:技术文章

本文共 5272 字,大约阅读时间需要 17 分钟。

最基本的入门展示

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);

}

}

转载地址:https://blog.csdn.net/weixin_32875295/article/details/115041699 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php小程序 100行左右,微信小程序滚动Tab如何实现左右可滑动切换的实例分析
下一篇:java中的grant_Java Activity.grantUriPermission方法代码示例

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月26日 17时34分13秒