Hbase——API操作
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操作的更多相关文章
- HBase API操作
|的ascII最大ctrl+shift+t查找类 ctrl+p显示提示 HBase API操作 依赖的jar包 <dependencies> <dependency> < ...
- 5.Hbase API 操作开发
Hbase API 操作开发需要连接Zookeeper进行节点的管理控制 1.配置 HBaseConfiguration: 包:org.apache.hadoop.hbase.HBaseConfigu ...
- HBASE API操作问题总结
org.apache.hadoop.hbase.MasterNotRunningException 在centos中查看,发现没有HMaster进程 解决方法: 1.启动hadoop后,需要等一段时间 ...
- Hbase Shell命令详解+API操作
HBase Shell 操作 3.1 基本操作1.进入 HBase 客户端命令行,在hbase-2.1.3目录下 bin/hbase shell 2.查看帮助命令 hbase(main):001:0& ...
- 大数据技术之_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 对象的方法以及关 ...
- 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 ...
- HBase API 基础操作
对于数据操作,HBase支持四类主要的数据操作,分别是: Put :增加一行,修改一行 Delete :删除一行,删除指定列族,删除指定column的多个版本,删除指定column的制定版本等 Get ...
- 使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法:
使用IDEA操作Hbase API 报错:org.apache.hadoop.hbase.client.RetriesExhaustedException的解决方法: 1.错误详情: Excepti ...
- Java API 操作HBase Shell
HBase Shell API 操作 创建工程 本实验的环境实在ubuntu18.04下完成,首先在改虚拟机中安装开发工具eclipse. 然后创建Java项目名字叫hbase-test 配置运行环境 ...
随机推荐
- html5网页录音和语音识别
背景 在输入方式上,人们总是在追寻一种更高效,门槛更低的方式,来降低用户使用产品的学习成本.语音输入也是一种尝试较多的方式,有些直接使用语音(如微信语音聊天),有些需要将语音转化为文字(语音识别).接 ...
- notification(浏览器通知)
一.notification简介 Web Notifications是HTML5 的一个特性,目前我知道的有谷歌浏览器和windows edge对它进行了支持,用于向用户配置和显示桌面通知. 二.no ...
- C# 委托专题
单播委托:一个委托只指向一个方法: 多播委托:一个委托指向多个方法,形成一个方法链: Main是静态方法,里面只能引用静态方法,而不能引用实例方法: Main可以进行类的实例化,然后引用实例化后的方法 ...
- Android.mk文件如何打日志信息
1. 在mk文件中添加:$(warning "xxx="$(变量名)) 2. 执行lunch,选一个分支,此过程中可以打出添加的log.
- Android控件设置半透明+EditText设置默认值+ 控件居中
Android控件设置半透明 效果 代码: android:background="#50FFFFFF" 50表示50%透明 Android:EditText设置默认值 andro ...
- 手写封装防抖debounce
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- XShell免费版的安装配置教程以及使用教程(超级详细)
一. XShell的作用 XShell可以在Windows界面下来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的.它支持 RLOGIN.SFTP.SERIAL.TELNET.SSH2 ...
- MFC---典型类和函数
在MFC中,典型的类有CString.CRect.CDialog等,这些类的使用方法是通用的,下文以CString类的使用为例做一个详细说明.类的使用主要还是使用类的方法,可以查看类的定义,查看这个类 ...
- 日志、第三方模块(openpyxl模块)
目录 1.日志模块 2.第三方模块 内容 日志模块 1.日志模块的主要组成部分 1.logger对象:产生日志 无包装的产品 import logging logger = logging.getLo ...
- Markdown基础语法规则
你好,世界.粗体,斜体,测试,弟弟,H2O 论文题目 一级标题 二级标题 三级标题 1 2 3 点击此链接打开网址 公式 \(y = \sin x\) \[ y = \frac{1}{x} \] dd ...