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

Hbase——API操作的更多相关文章

  1. HBase API操作

    |的ascII最大ctrl+shift+t查找类  ctrl+p显示提示 HBase API操作 依赖的jar包 <dependencies> <dependency> < ...

  2. 5.Hbase API 操作开发

    Hbase API 操作开发需要连接Zookeeper进行节点的管理控制 1.配置 HBaseConfiguration: 包:org.apache.hadoop.hbase.HBaseConfigu ...

  3. HBASE API操作问题总结

    org.apache.hadoop.hbase.MasterNotRunningException 在centos中查看,发现没有HMaster进程 解决方法: 1.启动hadoop后,需要等一段时间 ...

  4. Hbase Shell命令详解+API操作

    HBase Shell 操作 3.1 基本操作1.进入 HBase 客户端命令行,在hbase-2.1.3目录下 bin/hbase shell 2.查看帮助命令 hbase(main):001:0& ...

  5. 大数据技术之_11_HBase学习_02_HBase API 操作 + HBase 与 Hive 集成 + HBase 优化

    第6章 HBase API 操作6.1 环境准备6.2 HBase API6.2.1 判断表是否存在6.2.2 抽取获取 Configuration.Connection.Admin 对象的方法以及关 ...

  6. 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 ...

  7. HBase API 基础操作

    对于数据操作,HBase支持四类主要的数据操作,分别是: Put :增加一行,修改一行 Delete :删除一行,删除指定列族,删除指定column的多个版本,删除指定column的制定版本等 Get ...

  8. 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:

     使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...

  9. Java API 操作HBase Shell

    HBase Shell API 操作 创建工程 本实验的环境实在ubuntu18.04下完成,首先在改虚拟机中安装开发工具eclipse. 然后创建Java项目名字叫hbase-test 配置运行环境 ...

随机推荐

  1. [CSS]《CSS揭秘》第四章——视觉效果

    投影 单侧投影 box-shadow:0px 10px 10px -5px black; 邻边投影 box-shadow:10px 10px 10px 2px black; 双侧投影 box-shad ...

  2. 微信小程序:手写日历组件

    一.前言 最近公司要做一个酒店入住的小程序,不可避免的一定会使用到日历,而小程序没有内置的日历组件.在网上看了一下也没有非常适合需求的日历,于是自己写了一个. 二.代码 1. 原理分析 写一个日历只需 ...

  3. Python窗口学习之搜索框美化

    初学tkinter,感觉这个插件虽然是做界面的,但是没有html,也没有android那么人性化 既没有画圆角长方形的办法也没有添加透明按钮的办法(可能是我没找到) 所以自己用canvas画了两个扇形 ...

  4. Mybatis实现批量删除数据

    Mybatis实现批量删除操作 学习内容: 1. 使用 2. 代码实现 2.1 UserMapper.java 接口 2.2 UserMapper.xml 总结: 学习内容: 1. 使用 这里通过动态 ...

  5. 阿里云申请SSL证书 并部署到SpringBoot项目

    前提 有一台阿里云的服务器(安装了java环境) 有已经备案的域名,并且域名绑定上面的服务器 申请SSL证书 申请教程:https://blog.csdn.net/yunweifun/article/ ...

  6. spring-基于xml的aop开发-快速入门

    1.导入aop的相关坐标 <dependency> <groupId>org.springframework</groupId> <artifactId> ...

  7. Spring-AOP底层实现

    1.aop的底层实现:通过spring提供的动态代理技术实现的,在运行期间,spring通过动态代理技术动态的生成代理对象,代理对象方法执行时增强功能的介入,再去调用目标对象的方法,从而完成功能的增强 ...

  8. JavaWeb知识梳理(可收藏)

    **JavaWeb相关知识 ** 1.Servlet 1.1 Status Code(Http状态码) 1.1xx 请求信息 Http状态码 Http Status Code Http状态码含义中文说 ...

  9. Flutter 打印日志封装及创建Live Templates快捷打印日志

    只需要输入logi 就可出现以下代码 /// tag(类名.函数名)LogUtil.i(index, tag: '_MyHomePageState.onItemClick:');打印日志效果如下: 实 ...

  10. Linux内核链表之共享双链表

    说明 共享双链表意义在于,可以用一套函数维护不同数据类型的双链表 准备 定义双链表 #include <iostream> #include <string> using na ...