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. IdentityServer4系列 | 混合模式

    一.前言 在上一篇关于授权码模式中, 已经介绍了关于授权码的基本内容,认识到这是一个拥有更为安全的机制,但这个仍然存在局限,虽然在文中我们说到通过后端的方式去获取token,这种由web服务器和授权服 ...

  2. AngularJS的核心对象angular上的方法全面解析(AngularJS全局API)

    总结一下AngularJS的核心对象angular上的方法,也帮助自己学习一下平时工作中没怎么用到的方法,看能不能提高开发效率.我当前使用的Angularjs版本是1.5.5也是目前最新的稳定版本,不 ...

  3. PAT B1061判断题

    题目描述: 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量.第二 ...

  4. 用Java编写的猜拳小游戏

    学习目标: 熟练掌握各种循环语句 例题: 代码如下: // 综合案例分析,猜拳案例 // isContinue为是否开始游戏时你所输入的值 char isContinue; //y为开始,n为借宿 S ...

  5. ES 架构及基础 - 1

    Elasticsearch 是一款分布式,RESTful 风格的搜索和数据分析引擎,可以从海量的数据中高效的找到相关信息.如 wiki 用 ES 进行全文检索及其高亮,Github 用其检索代码,电商 ...

  6. WebSocket学习笔记

    参考文章链接:http://www.ruanyifeng.com/blog/2017/05/websocket.html 简单示例:https://www.yiibai.com/websocket/p ...

  7. Java报错:Unable to find setter method for attribute: [x]

    在学习JavaWeb JSTL与自定义标签时遇到的坑,用的老师给的代码结果直接原地报错:javax.servlet.ServletException: org.apache.jasper.Jasper ...

  8. [源码解析] TensorFlow 分布式环境(8) --- 通信机制

    [源码解析] TensorFlow 分布式环境(8) --- 通信机制 目录 [源码解析] TensorFlow 分布式环境(8) --- 通信机制 1. 机制 1.1 消息标识符 1.1.1 定义 ...

  9. Struts2中将表单数据封装到List和Map集合中

    一.将表单数据封装到Map集合中 1.创建MapAction类 import cn.entity.User; import com.opensymphony.xwork2.ActionSupport; ...

  10. 原生的ajax请求

    原生ajax请求的步骤: get 请求: 1,创建一个xhr变量 var xhr=new XMhttpRequest(); 2,设置请求方式和请求地址 xhr.open('url','http//19 ...