隐藏页面特效

Hbase——API操作

1.判断表是否存在

public static boolean isTableExit(String tableName) throws IOException { // //获取配置文件信息 // //HBaseConfiguration configuration=new HBaseConfiguration(); // Configuration configuration=HBaseConfiguration.create(); // configuration.set("hbase.zookeeper.quorum","master,s1,s2"); // // //获取管理员对象 // //HBaseAdmin admin=new HBaseAdmin(configuration); // Connection connection=ConnectionFactory.createConnection(configuration); // Admin admin=connection.getAdmin(); //判断表是否存在 boolean exists=admin.tableExists(TableName.valueOf(tableName)); //关闭连接 // admin.close(); //返回结果 return exists; }

2.创建表

public static void createTable(String tableName,String... cfs) throws IOException { // 判断是否存在列族信息 if(cfs.length<=0){ System.out.println("请设置列族信息"); return; } //判断表是否存在 if(isTableExit(tableName)){ System.out.println(tableName+"表已存在"); return; } //创建表描述器 HTableDescriptor hTableDescriptor=new HTableDescriptor(TableName.valueOf(tableName)); //循环添加列族信息 for(String cf:cfs){ //创建列祖描述器 HColumnDescriptor hColumnDescriptor=new HColumnDescriptor(cf); // 添加具体列族信息 hTableDescriptor.addFamily(hColumnDescriptor); } //创建表 admin.createTable(hTableDescriptor); }

3.删除表

public static void dropTable(String tableName) throws IOException { //判断表是否存在 if (!isTableExit(tableName)){ System.out.println(tableName+"表不存在!"); return; } //先使表下线 admin.disableTable(TableName.valueOf(tableName)); // 删除表 admin.deleteTable(TableName.valueOf(tableName)); }

4.创建命名空间

public static void createNameSpace(String ns){ //创建命名空间描述器 NamespaceDescriptor namespaceDescriptor=NamespaceDescriptor.create(ns).build(); //创建命名空间 try { admin.createNamespace(namespaceDescriptor); } catch (NamespaceExistException e){ System.out.println(ns+"命名空间已存在"); } catch (IOException e) { e.printStackTrace(); } }

完整代码:

package test; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; 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.client.HBaseAdmin; import java.io.IOException; /* DDL: 1.判断表是否存在 2.创建表 3.删除表 DML: 5.插入数据 6.查数据(get,scan) 7.删除数据 */ public class TestAPI { private static Connection connection=null; private static Admin admin=null; static { try { //获取配置信息 Configuration configuration=HBaseConfiguration.create(); configuration.set("hbase.zookeeper.quorum","master,s1,s2"); //创建连接对象 connection=ConnectionFactory.createConnection(configuration); //创建admin对象 admin=connection.getAdmin(); } catch (IOException e) { e.printStackTrace(); } } //1.判断表是否存在 public static boolean isTableExit(String tableName) throws IOException { // //获取配置文件信息 // //HBaseConfiguration configuration=new HBaseConfiguration(); // Configuration configuration=HBaseConfiguration.create(); // configuration.set("hbase.zookeeper.quorum","master,s1,s2"); // // //获取管理员对象 // //HBaseAdmin admin=new HBaseAdmin(configuration); // Connection connection=ConnectionFactory.createConnection(configuration); // Admin admin=connection.getAdmin(); //判断表是否存在 boolean exists=admin.tableExists(TableName.valueOf(tableName)); //关闭连接 // admin.close(); //返回结果 return exists; } //2.创建表 public static void createTable(String tableName,String... cfs) throws IOException { // 判断是否存在列族信息 if(cfs.length<=0){ System.out.println("请设置列族信息"); return; } //判断表是否存在 if(isTableExit(tableName)){ System.out.println(tableName+"表已存在"); return; } //创建表描述器 HTableDescriptor hTableDescriptor=new HTableDescriptor(TableName.valueOf(tableName)); //循环添加列族信息 for(String cf:cfs){ //创建列祖描述器 HColumnDescriptor hColumnDescriptor=new HColumnDescriptor(cf); // 添加具体列族信息 hTableDescriptor.addFamily(hColumnDescriptor); } //创建表 admin.createTable(hTableDescriptor); } public static void close(){ if (admin!=null){ try { admin.close(); } catch (IOException e) { e.printStackTrace(); } } if(connection!=null){ try { connection.close(); } catch (IOException e) { e.printStackTrace(); } } } //3.删除表 public static void dropTable(String tableName) throws IOException { //判断表是否存在 if (!isTableExit(tableName)){ System.out.println(tableName+"表不存在!"); return; } //先使表下线 admin.disableTable(TableName.valueOf(tableName)); // 删除表 admin.deleteTable(TableName.valueOf(tableName)); } //4.创建命名空间 public static void createNameSpace(String ns){ //创建命名空间描述器 NamespaceDescriptor namespaceDescriptor=NamespaceDescriptor.create(ns).build(); //创建命名空间 try { admin.createNamespace(namespaceDescriptor); } catch (NamespaceExistException e){ System.out.println(ns+"命名空间已存在"); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws IOException { //1.测试表是否存在 // System.out.println(isTableExit("stu5")); // // //2.创建表测试 createTable("0919:stu5","info1","info2"); // // //检测表创建是否成功 // System.out.println(isTableExit("stu5")); // // //3.删除表测试 // dropTable("stu5"); // // //检测表删除是否成功 // System.out.println(isTableExit("stu5")); //4.创建命名空间 createNameSpace("0919"); //关闭资源 close(); } }

 


__EOF__

本文作者CherriesOvO
本文链接https://www.cnblogs.com/zyj3955/p/15313939.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   CherriesOvO  阅读(63)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示