hbase java操作api - nameSpace,表,列族,列的操作 代码示例

news/2023/6/5 21:53:30

maven依赖

<dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.3.1</version>
</dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.2.0</version>
</dependency>


代码示例

有很多的代码是重复的,只是为形成记忆,见谅,
另外需要将 hbase-site.xml,hdfs-site.xml,core-site.xml三个文件放到Resources上目录

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.client.coprocessor.Batch;
import org.apache.hadoop.hbase.filter.*;
import org.apache.hadoop.hbase.io.compress.Compression;
import org.apache.hadoop.hbase.util.Bytes;
import java.util.ArrayList;
import java.util.List;public class HbaseApi_test_1 {private static Connection hbaseConn;private static Configuration hbaseConf;//HBaseAdmin 提供了一个接口来管理 HBase 数据库的表信息private static Admin hbaseAdmin;/*** 静态构造,在调用静态方法前运行,  初始化连接对象  * */static {hbaseConf = HBaseConfiguration.create();try {hbaseConn = ConnectionFactory.createConnection(hbaseConf);System.out.println("连接上了?" + !hbaseConn.isClosed());hbaseAdmin = hbaseConn.getAdmin();} catch (java.lang.Exception e) {e.printStackTrace();}}//****************************创建namespace (相当于数据库)****************************public static void createNameSpace() throws java.lang.Exception {//注意这里的语法NamespaceDescriptor ns1 = NamespaceDescriptor.create("ns1").build();hbaseAdmin.createNamespace(ns1);hbaseAdmin.close();}//****************************删除namespace (相当于数据库)****************************public static void deleteNameSpace() throws java.lang.Exception {//注意这里的语法hbaseAdmin.deleteNamespace("ns2");hbaseAdmin.close();}//****************************创建表****************************public static void create_Table() throws java.lang.Exception {TableName tableName = TableName.valueOf("ns1:mytest_4");System.out.println(hbaseAdmin.tableExists(tableName));if (!hbaseAdmin.tableExists(tableName)) {//HTableDescriptor 包含了表的名字极其对应表的列族HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);//HColumnDescriptor 维护着关于列族的信息,例如版本号,压缩设置等。HColumnDescriptor grade = new HColumnDescriptor(Bytes.toBytes("grade"));//数据保存的最大版本数grade.setMaxVersions(3);hTableDescriptor.addFamily(grade);HColumnDescriptor course = new HColumnDescriptor(Bytes.toBytes("course"));//设置保存的版本数,最小版本数和最大版本数course.setVersions(1, 3);hTableDescriptor.addFamily(course);hbaseAdmin.createTable(hTableDescriptor);/*建表时,根据rowkey,预分3个区域Region*///hbaseAdmin.createTable(t, Bytes.toBytes("row200"), Bytes.toBytes("row800"), 3);} else {System.out.println("表已经存在");}}//****************************修改表的元数据****************************public static void update_TableMeta() throws java.lang.Exception {TableName tableName = TableName.valueOf("ns1:mytest_4");HTableDescriptor tableDescriptor = hbaseAdmin.getTableDescriptor(tableName);//添加一个列族HColumnDescriptor newColumn = new HColumnDescriptor("address");//进行compaction的时候使用压缩算法newColumn.setCompactionCompressionType(Compression.Algorithm.GZ);//最大版本,没必要的话,就设置成1个newColumn.setMaxVersions(HConstants.ALL_VERSIONS);tableDescriptor.addFamily(newColumn);//修改以已有的列族HColumnDescriptor existingColumn = new HColumnDescriptor("grade");existingColumn.setCompactionCompressionType(Compression.Algorithm.GZ);existingColumn.setMaxVersions(HConstants.ALL_VERSIONS);tableDescriptor.modifyFamily(existingColumn);//修改表的元信息hbaseAdmin.modifyTable(tableName, tableDescriptor);hbaseAdmin.close();}//****************************添加列族****************************public static void add_TableFamily() throws java.lang.Exception {TableName tableName = TableName.valueOf("ns1:mytest_4");//取得一个要操作的表Table table = hbaseConn.getTable(tableName);//定义一个列族HColumnDescriptor address = new HColumnDescriptor(Bytes.toBytes("address"));//添加列族hbaseAdmin.addColumn(tableName, address);//返回表的描述信息HTableDescriptor tableDescriptor = hbaseAdmin.getTableDescriptor(tableName);System.out.println();System.out.println(tableDescriptor);System.out.println();//hbaseConn.close();}//****************************删除列族****************************public static void del_TableFamily() throws java.lang.Exception {TableName tableName = TableName.valueOf("ns1:mytest_4");//取得一个要操作的表Table table = hbaseConn.getTable(tableName);//删除列族hbaseAdmin.deleteColumn(tableName, Bytes.toBytes("address"));//返回表的描述信息HTableDescriptor tableDescriptor = hbaseAdmin.getTableDescriptor(tableName);System.out.println();System.out.println(tableDescriptor);System.out.println();//hbaseConn.close();}//****************************查询表状态,删除表等****************************public static void tableZhuangtai() throws java.lang.Exception {TableName tableName = TableName.valueOf("ns1:mytest_4");System.out.println("表是否可用:" + hbaseAdmin.isTableEnabled(tableName));  //trueSystem.out.println("表是否禁用:" + hbaseAdmin.isTableDisabled(tableName)); //false//禁用表hbaseAdmin.disableTable(tableName);System.out.println("表是否禁用:" + hbaseAdmin.isTableDisabled(tableName));  //trueSystem.out.println("表是否存在:" + hbaseAdmin.tableExists(tableName));     //true//删除表hbaseAdmin.deleteTable(tableName);System.out.println("表是否存在:" + hbaseAdmin.tableExists(tableName));     //false}
}

https://dhexx.cn/news/show-18123.html

相关文章

mybatis-plus条件构造器

mybatis-plus条件构造器一、mybatis-plus条件构造器1、条件构造器关系图1、QueryWrapper2、UpdateWrapper3、LambdaQueryWrapper4、LambdaUpdateWrapper5、LambdaQueryChainWrapper二、其他一、mybatis-plus条件构造器 1、条件构造器关系图 1.橙色框为抽象类abstract 2.蓝色框…

独树一帜的字符串匹配算法——RK算法

参加了雅虎2015校招&#xff0c;笔试成绩还不错&#xff0c;谁知初面第一题就被问了个字符串匹配&#xff0c;要求不能使用KMP&#xff0c;但要和KMP一样优&#xff0c;当时瞬间就呵呵了。后经过面试官的一再提示&#xff0c;也还是没有成功在面试现场写得。现将该算法记录如下…

【22年蓝桥杯】十三届蓝桥杯真题JavaB组解析+代码(带你复习知识点)(一)

试题 A: 星期计算 【填空题】 答案&#xff1a;7 解析&#xff1a;直接对所给数进行取余&#xff0c;然后直接再加6&#xff08;注意&#xff1a;不能直接让20^226再对7进行取余操作&#xff0c;这是不对的&#xff0c;这个6可以看成已经取余过了。&#xff09; 直接取余的话可…

Mybatis-plus批量插入和批量修改数据速度缓慢

Mybatis-plus批量插入和批量修改数据速度缓慢一、Mybatis-plus批量插入和批量修改数据速度缓慢1、代码2、解决办法一、Mybatis-plus批量插入和批量修改数据速度缓慢 1.使用mybaits-plus的saveBatch方法 2.使用流的并行方法&#xff1a;insertList.parallelStream().map(&#…

Outpost Security Suite Pro 8.1 – 免费4个月

OSS( 简称 )一款来自俄罗斯Agnitum公司的互联网安全产品。 Outpost以网络防火墙知名&#xff0c;AVG和avast&#xff01;等知名安全企业都有使用Outpost的防火墙技术。 Outpost Security Suite Pro产品采用了VirusBuster公司的反病毒引擎结合自家网络防火墙技术&#xff0c;在多…

Linux 安装中央仓库 Nexus

Linux 安装中央仓库 Nexus一、安装步骤1、配置环境2、找到安装目录解压 Nexus 安装包3、启动 Nexus4、拓展二、修改端口1、Nexus 服务的默认端口是 80812、两种启动方式3、开放防火墙三、登录并初始化 Nexus四、配置匿名访问五、其他1、在linux部署nexus使用root启动会报错Dete…

HTML基础(2) 格式标签 文本标签

格式标签&#xff1a; 1.<p></p> 用来显示段落 2.<br> 控制换行 3.<nobr> </nobr> 防止浏览器将过长内容自动换行显示 4 <blockquote></blockquote> 在这个标签队中的文本按照所进的效果进行显示 5、<center></center>…

Oracle增加表空间解决ORACLE ORA-01653: unable to extend table报错

Oracle增加表空间一、查看表空间的名字及文件所在位置二、增加所需表空间大小1、方法一2、方法二3、方法三三、查询表空间使用情况一、查看表空间的名字及文件所在位置 select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space from dba_data_fi…

C#线程安全使用(一)

关于Task的使用&#xff0c;一直都是半知半解&#xff0c;最近终于有时间详细的看了一遍MSDN&#xff0c;作为备忘录&#xff0c;将心得也记录下来和大家分享。 首先&#xff0c;根据MSDN的描述&#xff0c;Task是FrameWork4引进的新功能&#xff0c;他和ConCurrent命名空间一起…

Hive和Hbase整合使用,注意事项,细节等,没有讲整合的环境搭建

配置 hive 与 hbase 整合的目的是利用 HQL 语法实现对 hbase 数据库的增删改查操作&#xff0c;基本原理就是利用两者本身对外的API接口互相进行通信&#xff0c;两者通信主要是依靠hive_hbase-handler.jar工具类。 但请注意&#xff1a;使用Hive操作HBase中的表&#xff0c;只…