Java在HBase数据库创建表
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();
}
}
}
}
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
set hive.map.aggr=true 时统计PV数据错误
从一个表里group by 之后 计算累加值、去重值: 为了效率设置并行:set hive.exec.parallel=true(可选:set hive.exec.parallel.thread.number=16)、set hive.groupby.skewindata=true、set hive.map.aggr=true select plat, pagetype, count(*) pv, count(distinct userkey) uv from client_pv_form where dt = '2015-08-19' group by plat, pagetype union all select plat, 'all' pagetype, count(*) pv, count(distinct userkey) uv from client_pv_form where dt = '2015-08-19' group by plat union all select 'all' plat, pagetype, count(*) pv, count(distinct ...
-
下一篇
80元,100元,300元,500元低价出售40个不错的老域名
80元,100元,300元,500元低价出售40个不错的老域名 本人想退出域名界,低于成本价出售:http://654877.shop.ename.com/ 域名 简介 类型 当前价格 出价次数 剩余时间 cosmosbigdata.com 微软大数据cosmos 一口价 100元 0 62天 zazaza.cn 杂杂杂 一口价 500元 0 86天 kn0.cn 快男圈,酷女圈,困难圈, 一口价 500元 0 86天 91-edu.cn 91教育 一口价 100元 0 86天 jiongjiong.com.cn 炯炯,囧囧 一口价 600元 0 86天 back-caLL.com 英语单词,回访 一口价 500元 0 86天 ououou.cn 偶偶偶,欧欧欧 一口价 500元 0 86天 cacaca.cn 擦擦擦 一口价 500元 0 86天 yingyingying.cn 影影影,赢赢赢,盈盈盈 一口价 600元 0 86天 tape-recording.com 英语单词,磁带录音 一口价 500元 0 86天 sparkbigdata.cn spark大数据,最牛比的大数据技...
相关文章
文章评论
共有0条评论来说两句吧...

微信收款码
支付宝收款码