Java在HBase数据库创建表
2015-08-21 16:38
489 查看
Java在HBase数据库创建表
作者:chszs,版权所有,未经同意,不得转载。博主主页:http://blog.csdn.net/chszs要通过Java在HBase中创建一个数据表,首先需要导入hbase-client.jar驱动包。可以在项目pom.xml配置文件中添加依赖:
<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client<artifactId> <version>1.1.0.1</version> <dependency>
在添加依赖后,我们需要创建Configuration对象,并指定core-site.xml和hbase-site.xml作为资源文件。
Configuration config = HBaseConfiguration.create(); config.addResource(new Path("/etc/hbase/conf/hbase-site.xml")); config.addResource(new Path("/etc/hadoop/conf/core-site.xml"));
还需要在Configuration对象中设置hbase.zookeeper.quorum参数和hbase.zookeeper.property.clientPort参数的值,这些值也可以在hbase-site.xml配置文件中找到:
Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "127.0.0.1"); config.set("hbase.zookeeper.property.clientPort", "2181");
Configuration对象创建完成后,接着创建连接到HBase数据库的Connection对象,并通过此对象获取Admin对象,它负责实现创建数据表的操作:
Connection connection = ConnectionFactory.createConnection(config); Admin admin = connection.getAdmin();
一旦创建了Admin对象后,可以通过下面的代码创建数据表了:
String tableName = "users"; if (!admin.isTableAvailable(TableName.valueOf(tableName))) { HTableDescriptor hbaseTable = new HTableDescriptor(TableName.valueOf(tableName)); hbaseTable.addFamily(new HColumnDescriptor("name")); hbaseTable.addFamily(new HColumnDescriptor("contact_info")); hbaseTable.addFamily(new HColumnDescriptor("personal_info")); admin.createTable(hbaseTable); }
会严重是否存在“users”名的数据表,如果此表不存在就会创建一个新表,列名包括:家庭名、联系信息和个人信息。
完整的程序如下:
package com.wordpress.khodeprasad; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.ConnectionFactory; /** * @author Prasad Khode * */ public class CreateTable { public static void main(String[] args) { CreateTable object = new CreateTable(); object.createTable(); } public void createTable() { Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "127.0.0.1"); config.set("hbase.zookeeper.property.clientPort", "2181"); Connection connection = null; Admin admin = null; try { connection = ConnectionFactory.createConnection(config); admin = connection.getAdmin(); String tableName = "users"; if (!admin.isTableAvailable(TableName.valueOf(tableName))) { HTableDescriptor hbaseTable = new HTableDescriptor(TableName.valueOf(tableName)); hbaseTable.addFamily(new HColumnDescriptor("name")); hbaseTable.addFamily(new HColumnDescriptor("contact_info")); hbaseTable.addFamily(new HColumnDescriptor("personal_info")); admin.createTable(hbaseTable); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (admin != null) { admin.close(); } if (connection != null && !connection.isClosed()) { connection.close(); } } catch (Exception e2) { e2.printStackTrace(); } } } }
相关文章推荐
- 设计模式(java) 单例模式 单例类
- 设计模式(java) 单例模式 单例类
- JAVA学习篇--静态代理VS动态代理
- myeclipse调式与属性显示
- PackageManager.java中的方法resolveContentProvider的参数说明有误。
- Eclipse无提示的解决办法
- Eclipse汉化后怎么改回英文版(可切换中英文)
- 优化Myeclipse8.5
- Eclipse汉化后怎么改回英文版(可切换中英文)
- SpringMVC两种方式实现多文件上传
- Eclipse中使用Maven新建Web项目
- java设计模式之——代理模式
- eclipse中使用svn提交,更新代码。
- Spring dependency checking with @Required Annotation
- Java添加注册表协议
- Java NIO
- java性能调优
- java synchronized 线程同步机制详解
- Spring properties dependency checking
- Eclipse调试Bug的七种常用技巧