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. 创建TypeScript代码模板(NVS+Yarn+ESLint+Prettier+Husky)

    创建TypeScript代码模板(NVS+Yarn+ESLint+Prettier+Husky) Cui, Richard Chikun 本文笔者将带你在Github代码仓库创建TypeScript代 ...

  2. 开源HTML5游戏引擎Kiwi.js 1.0正式发布

    Kiwi.js是由GameLab开发的一款全新的开源HTML5 JavaScript游戏引擎.在经过一年多的开发和测试之后,终于在日前正式发布了Kiwi.js 1.0版本. 其创始人Dan Milwa ...

  3. 浏览器中唤起native app || 跳转到应用商城下载

    前段时间遇到一个小需求:要求在分享出来的h5页面中,有一个立即打开的按钮,如果本地安装了我们的app,那么点击就直接唤起本地app,如果没有安装,则跳转到下载. 因为从来没有做过这个需求,因此这注定是 ...

  4. react在移动端的自适应布局

    react+flexible适配布局 (1)npm i lib-flexible --save (2)npm i postcss-px2rem --save (3)在 node_modules/rea ...

  5. Java 值传递 or 引用传递?

    Java 方法传参 值传递 or 引用传递? 结论:Java采用的是值传递 先建立一些基础的概念 什么是值传递和引用传递? 值传递(pass by value):是指在调用函数时将实际参数复制一份传递 ...

  6. FreeSql的各种工程demo上新啦

    FreeSql的各种工程demo GitHub | Gitee console,winforms nf461,vb,wpf,webapi,workerSevice,signalIR xamarinFo ...

  7. formdata收集数据

    通常在收集表单的时候我们都要涉及到绑定上传附件,这时候就可以用formdata的形式携带文件流上传给服务器. formData是ajax2.0(XMLHttpRequest Level2)新提出的接口 ...

  8. SMBIOS- DMTF组织指定的规范

    SMBIOS(System Management BIOS , SMBIOS) 是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范 SMBIOS是由行业指导机构Desktop Manage ...

  9. 函数 装饰器 python

    今日内容概要 1.闭包函数 2.闭包函数的实际应用 3.装饰器简介(重点加难点) 4.简易版本装饰器 5.进阶版本装饰器 6.完整版本装饰器 7.装饰器模板(拷贝使用即可) 8.装饰器语法糖 9.装饰 ...

  10. HTTP和HTTPS有什么不同

    网站的URL会分为两部分:通信协议和域名地址. 域名地址都很好理解,不同的域名地址表示网站中不同的页面,而通信协议,简单来说就是浏览器和服务器之间沟通的语言.网站中的通信协议一般就是HTTP协议和HT ...