HBase开发: Java API 管理表
分布式数据库HBase开发: Java API 管理表
- javaAPI获取表的列表
- 修改表
- 禁用表,启用表,删除表
前言:
第一关用一个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 管理表相关推荐
- 5 hbase-shell + hbase的java api
本博文的主要内容有 .HBase的单机模式(1节点)安装 .HBase的单机模式(1节点)的启动 .HBase的伪分布模式(1节点)安装 .HBase的伪分布模式(1节点)的启动 .HBase ...
- Hbase高手之路 -- 第五章 -- HBase的Java API编程
Hbase高手之路 – 第五章 – HBase的Java API编程 一. 需求与数据集 某自来水公司,需要存储大量的缴费明细数据,以下截取了缴费明细的一部分内容: 因为缴费明细的数据记录非常庞大,该 ...
- HBase Java API 创建表时一直卡住
场景 HBase在CentOS上分布集群安装: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119511593 在上面搭建起来H ...
- HBASE的java api简介
一:创建表 //获取配置 Configuration conf = new Configuration(); //填写配置信息 conf.set("hbase.zookeeper.quoru ...
- hbase 单机 java api,HBase学习(一)hbase安装(单机模式)和javaapi客户端访问hbase例子...
平时习惯了window下开发,而Hbase只能在linux环境下运行,所以决定把hbase安装一台虚拟机上,在windows下运行eclipse连接虚拟机里的hbase 因为对linux命令了解不多, ...
- HBase 基本Java API
数据库:HBaseConfiguration HBaseAdmin 表:HTable HTableDescriptor 列族:HColumnDescriptor 行列操作:Put Get Sc ...
- HBase基本操作-java api
上次将了HBase搭建完成后,一些Shell的使用,现在我们将了解一下HBase的代码控制,我使用的是java8以及hbase2.1.1版本 首先你的集群已经是搭建完成了,然后这次我使用的是IDEA, ...
- 简单hbase java,Hbase 简单java API 操作
package utils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.TableName ...
- 小记--------hbase数据库java API 常用方法及案例
HBaseAdmin类:管理hbase数据库的表信息,'创建表.删除表.列出表选项.使表有效/无效.添加或删除列簇': Eg: //使用工厂模式创建connection val conn: Con ...
- java api管理工具_一个能快速写出实体类的Api文档管理工具
今天各种MVC框架满天飞,大大降低了编码的难度,写实体类就没有办法回避的一件事了,花大把的时间去做一些重复而且繁琐的工作,实在不是一个优秀程序员的作风,所以多次查找和尝试后,找到一个工具类网站--Ap ...
最新文章
- vs2010如何安装qt插件
- worksteal thread pool
- oracle insert 新增语句
- 德国超级计算机中心,德国:强化人工智能能力建设 加大高性能计算网络投资...
- python 3.8.2_python-3.8.2-docs-html
- Netty 服务 接收新数据
- 【转载】关于防火墙的初次接触
- MODIS三种常见数据辐射定标处理
- 拓扑排序算法C++实现
- 关于ABAP调试中的F5,F6,F7,F8的区别和用法
- Gitee-基于Git的代码托管和研发协作平台,JNPF快速开发框架源码目录截图
- 一公司的产品策划职位要求
- 用JavaScript实现,用户输入自己的汽油编号,然后输入自己加多少升,就弹出价格
- Python编程:使用wkhtmltopdf将html网页转成pdf文件
- 为什么PDF转成Word后是图片,怎么才能修改?
- c语言字母圣诞树,如何用C语言画一个“圣诞树”.pdf
- Windows一键删除指定文件或文件夹
- 如何在局域网下建立共享文件夹?
- ios添加 启动画面_iOS 两种设置启动图方式的 bug 汇总
- 唐尼vr眼镜好吗_USP和唐尼VR眼镜哪个好
热门文章
- 27亿美元的NASA「毅力号」成功登陆火星!还带了一架1%大气密度也能飞的无人机...
- 如何解决没有指定在Windows运行或者它包含错误
- Matlab 数据类型
- js实现视频截图,并通过post请求发送图片
- c语言大赛评分用数组,C语言大赛现场评分系统
- Hadoop基础组件思维导图
- 信号与系统 第二版pdf 作者:奥本海姆 翻译:刘树棠
- asp.net pdf如何转换成tif_如何将pdf转换成word?它可以解决大多数文档转换问题
- android图片浮动层,android浮层图片拖动并且可点击效果
- 【C#】Winform常用属性和事件笔记大全(入门者参考)