分布式数据库HBase开发: Java API 管理表

  1. javaAPI获取表的列表
  2. 修改表
  3. 禁用表,启用表,删除表

前言:

第一关用一个foreach遍历,输出三行代码就行。

第二关对照左边教程,对号入座就行。

第三关删除(记得先停用再删除,不然报错),停用,启用都还比较简单,创建表函数添加列的AIP有一个是过时的(HColumnDescriptor)。

第一关要:

第一关答案:

package step1;import java.util.ArrayList;
import java.util.List;import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.*;public class Task {public void showTableList() throws Exception {/********* Begin *********/Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象List<TableDescriptor> tableDescriptors = admin.listTableDescriptors();for(TableDescriptor tableDescriptor: tableDescriptors){System.out.println("Table:" + tableDescriptor.getTableName());System.out.println("\texists:" + admin.tableExists(tableDescriptor.getTableName()));System.out.println("\tenabled:" + admin.isTableEnabled(tableDescriptor.getTableName()));}/********* End *********/}
}

第二关要求:

第二关答案:

 package step2;import java.io.IOException;import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.io.compress.Compression;
import org.apache.hadoop.hbase.util.*;public class Task {public void updateTables()throws Exception{/********* Begin *********/Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象TableName tableName1 = TableName.valueOf("t_emp2");TableName tableName2 = TableName.valueOf("t_dept2");ColumnFamilyDescriptorBuilder buildFamily = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data"));//创建builder对象buildFamily.setBlocksize(1024*1024);//设置缓存大小buildFamily.setBlockCacheEnabled(false);//设置关闭缓存,默认是truebuildFamily.setCompressionType(Compression.Algorithm.GZ);//默认是NONEColumnFamilyDescriptor family = buildFamily.build();//构建Family对象admin.modifyColumnFamily(tableName1, family);//调用修改方法,方法接收两个参数:TableName,ColumnFamilyDescriptoradmin.deleteColumnFamily(tableName1, Bytes.toBytes("data1"));//删除表中名为data的列族    ColumnFamilyDescriptorBuilder buildFamily1 = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("data1"));//创建builder对象buildFamily1.setMinVersions(2);buildFamily1.setMaxVersions(5);buildFamily1.setInMemory(true); //默认是falsebuildFamily1.setTimeToLive(60*60*24); //以秒为单位,超过这个时间设置的就会在下一次大合并中被删除ColumnFamilyDescriptor family1 = buildFamily1.build();//构建Family对象admin.modifyColumnFamily(tableName2, family1);//调用修改方法,方法接收两个参数:TableName,ColumnFamilyDescriptoradmin.deleteColumnFamily(tableName2, Bytes.toBytes("data"));//删除表中名为data的列族  /********* End *********/}}

第三关要求:

第三关答案:

package step3;import java.io.IOException;import org.apache.hadoop.conf.*;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.*;public class Task {/*** 刪除表* @param tableName 表名* @throws Exception*/public void deleteTable(String tableName)throws Exception{/********* Begin *********/Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象TableName testName = TableName.valueOf(Bytes.toBytes(tableName));admin.disableTable(testName);admin.deleteTable(testName);/********* End *********/}/*** 创建表* @param tableName  表名* @param columnNames 列族的动态数组* @throws Exception*/public void createTable(String tableName,String... columnNames)throws Exception{/********* Begin *********/Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象// TableName tableName1 = TableName.valueOf(Bytes.toBytes(tableName));//定义表名// HTableDescriptor htd = new HTableDescriptor(tableName1);//定义表对象// for(String s: columnNames){//  htd.addFamily(new HColumnDescriptor(Bytes.toBytes(s)));// }//构建一个Test_teacher_info表TableDescriptorBuilder test_teacher_info = TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName));for(String s: columnNames){ColumnFamilyDescriptor of = ColumnFamilyDescriptorBuilder.of(s);test_teacher_info.setColumnFamily(of);}//构建TableDescriptor build = test_teacher_info.build();admin.createTable(build);/********* End *********/}/*** 启用表* @param tableName * @throws Exception */public void enableTable(String tableName) throws Exception{/********* Begin *********/Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象TableName demoName = TableName.valueOf(Bytes.toBytes(tableName));admin.enableTable(demoName);/********* End *********/}/*** 禁用表* @param tableName*/public void disableTable(String tableName)throws Exception{/********* Begin *********/Configuration conf = HBaseConfiguration.create(); //使用create()静态方法就可以得到Configuration对象Connection conn = ConnectionFactory.createConnection(conf); //config为前文的配置对象Admin admin = conn.getAdmin(); //使用连接对象获取Admin对象TableName testName = TableName.valueOf(Bytes.toBytes(tableName));admin.disableTable(testName);/********* End *********/}}

HBase开发: Java API 管理表相关推荐

  1. 5 hbase-shell + hbase的java api

    本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装  .HBase的伪分布模式(1节点)的启动    .HBase ...

  2. Hbase高手之路 -- 第五章 -- HBase的Java API编程

    Hbase高手之路 – 第五章 – HBase的Java API编程 一. 需求与数据集 某自来水公司,需要存储大量的缴费明细数据,以下截取了缴费明细的一部分内容: 因为缴费明细的数据记录非常庞大,该 ...

  3. HBase Java API 创建表时一直卡住

    场景 HBase在CentOS上分布集群安装: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119511593 在上面搭建起来H ...

  4. HBASE的java api简介

    一:创建表 //获取配置 Configuration conf = new Configuration(); //填写配置信息 conf.set("hbase.zookeeper.quoru ...

  5. hbase 单机 java api,HBase学习(一)hbase安装(单机模式)和javaapi客户端访问hbase例子...

    平时习惯了window下开发,而Hbase只能在linux环境下运行,所以决定把hbase安装一台虚拟机上,在windows下运行eclipse连接虚拟机里的hbase 因为对linux命令了解不多, ...

  6. HBase 基本Java API

    数据库:HBaseConfiguration  HBaseAdmin 表:HTable  HTableDescriptor 列族:HColumnDescriptor 行列操作:Put  Get  Sc ...

  7. HBase基本操作-java api

    上次将了HBase搭建完成后,一些Shell的使用,现在我们将了解一下HBase的代码控制,我使用的是java8以及hbase2.1.1版本 首先你的集群已经是搭建完成了,然后这次我使用的是IDEA, ...

  8. 简单hbase java,Hbase 简单java API 操作

    package utils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.TableName ...

  9. 小记--------hbase数据库java API 常用方法及案例

     HBaseAdmin类:管理hbase数据库的表信息,'创建表.删除表.列出表选项.使表有效/无效.添加或删除列簇': Eg: //使用工厂模式创建connection val conn: Con ...

  10. java api管理工具_一个能快速写出实体类的Api文档管理工具

    今天各种MVC框架满天飞,大大降低了编码的难度,写实体类就没有办法回避的一件事了,花大把的时间去做一些重复而且繁琐的工作,实在不是一个优秀程序员的作风,所以多次查找和尝试后,找到一个工具类网站--Ap ...

最新文章

  1. vs2010如何安装qt插件
  2. worksteal thread pool
  3. oracle insert 新增语句
  4. 德国超级计算机中心,德国:强化人工智能能力建设 加大高性能计算网络投资...
  5. python 3.8.2_python-3.8.2-docs-html
  6. Netty 服务 接收新数据
  7. 【转载】关于防火墙的初次接触
  8. MODIS三种常见数据辐射定标处理
  9. 拓扑排序算法C++实现
  10. 关于ABAP调试中的F5,F6,F7,F8的区别和用法
  11. Gitee-基于Git的代码托管和研发协作平台,JNPF快速开发框架源码目录截图
  12. 一公司的产品策划职位要求
  13. 用JavaScript实现,用户输入自己的汽油编号,然后输入自己加多少升,就弹出价格
  14. Python编程:使用wkhtmltopdf将html网页转成pdf文件
  15. 为什么PDF转成Word后是图片,怎么才能修改?
  16. c语言字母圣诞树,如何用C语言画一个“圣诞树”.pdf
  17. Windows一键删除指定文件或文件夹
  18. 如何在局域网下建立共享文件夹?
  19. ios添加 启动画面_iOS 两种设置启动图方式的 bug 汇总
  20. 唐尼vr眼镜好吗_USP和唐尼VR眼镜哪个好

热门文章

  1. 27亿美元的NASA「毅力号」成功登陆火星!还带了一架1%大气密度也能飞的无人机...
  2. 如何解决没有指定在Windows运行或者它包含错误
  3. Matlab 数据类型
  4. js实现视频截图,并通过post请求发送图片
  5. c语言大赛评分用数组,C语言大赛现场评分系统
  6. Hadoop基础组件思维导图
  7. 信号与系统 第二版pdf 作者:奥本海姆 翻译:刘树棠
  8. asp.net pdf如何转换成tif_如何将pdf转换成word?它可以解决大多数文档转换问题
  9. android图片浮动层,android浮层图片拖动并且可点击效果
  10. 【C#】Winform常用属性和事件笔记大全(入门者参考)