java api操作

导入开发包

将hbase安装包中lib下包导入java项目

创建表

Configuration conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum",

"CentOS01:2181,CentOS02:2181,CentOS03:2181");

HBaseAdmin admin = new HBaseAdmin(conf);

HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("tabe"));

HColumnDescriptor hcd_fam1 = new HColumnDescriptor("fam1");

hcd_fam1.setMaxVersions(3);

HColumnDescriptor hcd_fam2 = new HColumnDescriptor("fam2");

htd.addFamily(hcd_fam1);

htd.addFamily(hcd_fam2);

admin.createTable(htd);

admin.close();

插入数据

Configuration conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");

HTable table = new HTable(conf,"tabe");

Put put = new Put(Bytes.toBytes("row1"));

put.add(Bytes.toBytes("fam1"),Bytes.toBytes("col1"),Bytes.toBytes("val1"));

put.add(Bytes.toBytes("fam1"),Bytes.toBytes("col2"),Bytes.toBytes("val2"));

put.add(Bytes.toBytes("fam2"),Bytes.toBytes("col3"),Bytes.toBytes("val3"));

table.put(put);

table.close();

**javaapi操作hbase时,入口类为HTable,此对象创建时需要扫描.META表,以及其他操作,这非常耗时,所以,应该将该对象设置为单例,复用该对象,如果需要多个HTable对象,应该使用HTable

Pool,通过对象池复用对象。

HTablePool pool = new HTablePool(conf,10);//不知道为什么过时了?

**hbase所有修改数据的操作都保证了行级别的原子性,

试验:一次插入100万条数据

HTable table = new HTable(conf,"tabx");

List<Put> puts = new ArrayList<Put>();

for(int i=1;i<=1000000;i++){

Put put = new Put(Bytes.toBytes("row"+i));

put.add(Bytes.toBytes("fam1"),Bytes.toBytes("col1"),Bytes.toBytes("val"+i))

puts.add(put);

if(i % 10000 == 0){

table.put(puts);

puts = new ArrayList<Put>();

}

}

table.put(puts);

table.close();

获取数据

Configuration conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");

HTable table = new HTable(conf,"tabe");

Get get = new Get(Bytes.toBytes("row1"));

Result result = table.get(get);

byte [] bs = result.getValue(Bytes.toBytes("fam1"),Bytes.toBytes("col1"));

String str = Bytes.toString(bs);

System.out.println(str);

table.close();

获取数据集

Configuration conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");

HTable table = new HTable(conf,"tabe");

Scan scan = new Scan(Bytes.toBytes("row1"));

ResultScanner scanner = table.getScanner(scan);

Iterator it = scanner.iterator();

while(it.hasNext()){

Result result = (Result) it.next();

byte [] bs = result.getValue(Bytes.toBytes("fam1"),Bytes.toBytes("col1"));

String str = Bytes.toString(bs);

System.out.println(str);

}

table.close();

删除数据

Configuration conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum","CentOS01:2181,CentOS02:2181,CentOS03:2181");

HTable table = new HTable(conf,"tabe");

Delete delete = new Delete(Bytes.toBytes("row1"));

table.delete(delete);

table.close();

删除表

//1.创建配置对象

HBaseConfiguration conf = new HBaseConfiguration();

conf.set("hbase.zookeeper.quorum", "CentOS01");

//2.创建HBaseAdmin对象

HBaseAdmin admin = new HBaseAdmin(conf);

//3.删除表

admin.disableTable(Bytes.toBytes("tab1"));

admin.deleteTable(Bytes.toBytes("tab1"));

//4.关闭连接

admin.close();

时间: 2024-08-08 22:41:06

java api操作的相关文章

Java API操作HDFS

HDFS是存储数据的分布式文件系统,对HDFS的操作,就是对文件系统的操作,除了用HDFS的shell命令对文件系统进行操作,我们也可以利用Java API对文件系统进行操作,比如文件的创建.删除.修改权限等等,还有文件夹的创建.删除.重命名等等. 使用Java API对文件系统进行操作主要涉及以下几个类: 1.Configuration类:该类的对象封装了客户端或者服务端的配置. 2.FileSystem类:该类的对象是一个文件系统对象,可以利用该对象的一些方法来对文件进行操作,FileSys

Hadoop读书笔记(三)Java API操作HDFS

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 JAVA URL 操作HDFS OperateByURL.java package hdfs; import java.io.InputStream; import jav

HDFS基础和java api操作

1. 概括 适合一次写入多次查询情况,不支持并发写情况 通过hadoop shell 上传的文件存放在DataNode的block中,通过linux shell只能看见block,看不见文件(HDFS将客户端的大文件存放在很多节点的数据块中,Block本质上是一个逻辑概念,它是hdfs读写数据的基本单位) HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间 2. fs 可以使用hdfs shell操作hdfs,常用 fs命令如下: eg: hadoop fs -cat fi

使用java api操作Hadoop文件 Robbin

1 package cn.hadoop.fs; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.net.URI; 6 import java.net.URISyntaxException; 7 8 import org.apache.hadoop.conf.Configuration; 9 import org.apache.hadoop.fs.FSDataOutputStream; 10 i

hive-通过Java API操作

通过Java API操作hive,算是测试hive第三种对外接口 测试hive 服务启动 1 package org.admln.hive; 2 3 import java.sql.SQLException; 4 import java.sql.Connection; 5 import java.sql.ResultSet; 6 import java.sql.Statement; 7 import java.sql.DriverManager; 8 9 public class testHiv

大数据技术之_20_Elasticsearch学习_01_概述 + 快速入门 + Java API 操作 + 创建、删除索引 + 新建、搜索、更新删除文档 + 条件查询 + 映射操作

一 概述1.1 什么是搜索?1.2 如果用数据库做搜索会怎么样?1.3 什么是全文检索和 Lucene?1.4 什么是 Elasticsearch?1.5 Elasticsearch 的适用场景1.6 Elasticsearch 的特点1.7 Elasticsearch 的核心概念1.7.1 近实时1.7.2 Cluster(集群)1.7.3 Node(节点)1.7.4 Index(索引 --> 数据库)1.7.5 Type(类型 --> 表)1.7.6 Document(文档 -->

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.hbase-site.xml.hdfs-site.xml文件放到工程src下 2.把phoenix的phoenix-4.3.0-client.jar和phoenix-core-4.3.0.jar添加到工程classpath 3.配置集群中各节点的hosts文件,把客户端的hostname:IP添加进去

Java API操作ZooKeeper

创建会话 1 package org.zln.zk; 2 3 import org.apache.zookeeper.WatchedEvent; 4 import org.apache.zookeeper.Watcher; 5 import org.apache.zookeeper.ZooKeeper; 6 7 import java.io.IOException; 8 9 /** 10 * Created by sherry on 16/8/27. 11 */ 12 public class

Java API操作HA方式下的Hadoop

通过java api连接Hadoop集群时,如果集群支持HA方式,那么可以通过如下方式设置来自动切换到活动的master节点上.其中,ClusterName 是可以任意指定的,跟集群配置无关,dfs.ha.namenodes.ClusterName也可以任意指定名称,有几个master就写几个,后面根据相应的设置添加master节点地址即可. private static String ClusterName = "nsstargate"; private static final S

Kafka Java API操作topic

Kafka官方提供了两个脚本来管理topic,包括topic的增删改查.其中kafka-topics.sh负责topic的创建与删除:kafka-configs.sh脚本负责topic的修改和查询,但很多用户都更加倾向于使用程序API的方式对topic进行操作. 上一篇文章中提到了如何使用客户端协议(client protocol)来创建topic,本文则使用服务器端的Java API对topic进行增删改查.开始之前,需要明确的是,下面的代码需要引入kafka-core的依赖,以kafka 0