热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HbaseDDL原生api操作

Hbase-DDL原生api操作DDL操作1.判断表是否存在2.创建表3.创建命名空间4.删除表创建项目引入依赖,文章使用hbase1.3.1版本

Hbase-DDL原生api操作

  • DDL操作
  • 1.判断表是否存在
  • 2.创建表
  • 3.创建命名空间
  • 4.删除表

创建项目引入依赖,文章使用 hbase 1.3.1版本

<dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>1.3.1</version>
</dependency><dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-server</artifactId><version>1.3.1</version>
</dependency>

创建 log4j.properties 日志文件

# Configure logging for testing: optionally with log file#log4j.rootLogger&#61;debug,appender
log4j.rootLogger&#61;info,appender
#log4j.rootLogger&#61;error,appender#\u8F93\u51FA\u5230\u63A7\u5236\u53F0
log4j.appender.appender&#61;org.apache.log4j.ConsoleAppender
#\u6837\u5F0F\u4E3ATTCCLayout
log4j.appender.appender.layout&#61;org.apache.log4j.TTCCLayout

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 java.io.IOException;
/* DDL* 1.判断表是否存在* 2.创建表* 3.创建命名空间* 4.删除表*/
public class DdlApi {private static Connection connection &#61; null;private static Admin admin &#61; null;static {try {Configuration configuration &#61; HBaseConfiguration.create();configuration.set("hbase.zookeeper.quorum", "192.168.100.136,192.168.100.137,192.168.100.138");configuration.set("hbase.zookeeper.property.clientPort", "2181");connection &#61; ConnectionFactory.createConnection(configuration);admin &#61; connection.getAdmin();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {try {// 判断表是否存在//System.out.println(isTableExist("stu5"));// 创建命名空间//createNameSpace("0408");// 创建表 createTable("0408:stu","info1","info2");//System.out.println(isTableExist("stu5"));close();} catch (Exception e) {e.printStackTrace();}}//1 判断表是否存在public static Boolean isTableExist(String tableName) throws IOException {//1.获取配置文件信息//HBaseConfiguration configuration &#61; new HBaseConfiguration();
// Configuration configuration &#61; HBaseConfiguration.create();
// configuration.set("hbase.zookeeper.quorum", "192.168.100.136,192.168.100.137,192.168.100.138");
// configuration.set("hbase.zookeeper.property.clientPort", "2181");//2.获取管理员对象
// Connection connection &#61; ConnectionFactory.createConnection(configuration);
// Admin hBaseAdmin &#61; connection.getAdmin();//HBaseAdmin hBaseAdmin &#61; new HBaseAdmin(configuration);//3.判断表是否存在boolean b &#61; admin.tableExists(TableName.valueOf(tableName));//4.关闭资源//hBaseAdmin.close();close();//5.返回结果return b;}//2 创建表public static void createTable(String tableName,String... cfs) throws IOException {//1. 判断列族是否存在if(cfs.length <&#61; 0){System.out.println("设置列族信息&#xff01;");return;}//2. 判断表是否存在if(isTableExist(tableName)){System.out.println(tableName&#43;"表已存在");return;}//3. 创建表描述器HTableDescriptor hTableDescriptor &#61; new HTableDescriptor(TableName.valueOf(tableName));//4. 循环添加列族信息for(String cf : cfs){//5. 创建列族描述器HColumnDescriptor hColumnDescriptor &#61; new HColumnDescriptor(cf);//6. 添加列族信息hTableDescriptor.addFamily(hColumnDescriptor);}//7. 创建表admin.createTable(hTableDescriptor);}// 3.创建命名空间public static void createNameSpace(String ns){//创建命名空间描述器NamespaceDescriptor namespaceDescriptor &#61; NamespaceDescriptor.create(ns).build();try {admin.createNamespace(namespaceDescriptor);}catch (NamespaceExistException e){System.out.println("命名空间已存在");}catch (IOException e) {e.printStackTrace();}}//4 删除表public static void dropTable(String tabale){try {//判断表是否存在if(!isTableExist(tabale)){System.out.println(tabale&#43;"表不已存在");return;}//2.使表下线admin.disableTable(TableName.valueOf(tabale));//3.删除表admin.deleteTable(TableName.valueOf(tabale));close();} catch (IOException e) {e.printStackTrace();}}public static void close(){if (admin !&#61; null){try {admin.close();} catch (IOException e) {e.printStackTrace();}}if(connection !&#61; null){try {connection.close();} catch (IOException e) {e.printStackTrace();}}}
}


推荐阅读
  • 在Java应用程序中调用`response.getStatus()`方法时遇到了`NoSuchMethodError`异常,经过分析,初步判断为依赖冲突问题。通过检查项目依赖树发现,当前项目版本与某些库的版本不兼容,导致该方法无法被正确识别。建议通过更新相关依赖版本或使用依赖管理工具(如Maven或Gradle)来解决此问题,确保所有依赖项版本一致且兼容。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • 根据不同环境需求,利用 Vue CLI 的 `npm run build` 命令对项目进行定制化打包,如测试、预发布和生产环境。通过配置 `process.env` 变量,实现不同环境下接口和服务的动态切换,确保应用在各阶段都能高效运行和调试。 ... [详细]
  • 任务通知是 FreeRTOS 中的一个可选功能,需要通过配置宏 `#define configUSE_TASK_NOTIFICATIONS 1` 来启用。每个任务控制块 (TCB) 都包含一个32位的通知值,用于任务间的同步和通信。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • 在Matlab中,我尝试构建了一个神经网络模型,用于预测函数 y = x^2。为此,我设计并实现了一个拟合神经网络,并对其进行了详细的仿真和验证。通过调整网络结构和参数,成功实现了对目标函数的准确估计。此外,还对模型的性能进行了全面评估,确保其在不同输入条件下的稳定性和可靠性。 ... [详细]
  • 通过采用JSON数据格式,能够高效且精确地获取用户的实时地理位置信息,为各类位置服务应用提供可靠的数据支持。该方法不仅简化了数据交换流程,还提高了地理信息处理的准确性和效率,适用于移动应用、导航系统及物联网设备等多种场景。 ... [详细]
  • Mybatis_04日志
    前几天临近期末考试,一直在准备考试,吐槽一下,这个学期的考试真是全背书,服了,背吐了。考完试到元旦又放肆了几天 ... [详细]
  • 原标题:springboot2.0mybatismapper-locations扫描多个路径mapper-loca文章来源地址48461.htmltions扫描多个路径,中间 ... [详细]
  • 增加Maven构建profile配置在项目最顶层的pom.xml添加common和release两个profile,并声明${app.run.env}作为环境切换变量<profiles> ... [详细]
  • Hbase 的伪分布部署、shell基本操作及hbase相关理念
    1,HBase的的的的伪分布式配置-对zookeeper的配置,这个前面配置过,修改zoo.cfg文件,指定zookeeper的主入口-配置的HBase的的:进入optmo ... [详细]
author-avatar
岁月如风晓
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有