/**
*
*/
package hbase;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
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;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.exceptions.DeserializationException;
import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.Test;
/**
* 类描述:HBase功能演示
* 作者:孙建平
* 日期:2016-4-20下午10:25:16
*
*/
public class HBaseDemo {
// 与HBase数据库的连接对象
Connection connection;
// 数据库元数据操作对象
Admin admin;
/**
* 方法描述:
* 作者:孙建平
* 日期:2016-4-20 下午10:25:16
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
// 取得一个数据库连接的配置参数对象
Configuration conf = HBaseConfiguration.create();
// 设置连接参数:HBase数据库所在的主机IP
conf.set("hbase.zookeeper.quorum", "192.168.137.13");
// 设置连接参数:HBase数据库使用的端口
conf.set("hbase.zookeeper.property.clientPort", "2181");
// 取得一个数据库连接对象
connection = ConnectionFactory.createConnection(conf);
// 取得一个数据库元数据操作对象
admin = connection.getAdmin();
}
/**
* 方法描述:创建表
* 作者:孙建平
* 日期:2016-4-20 下午10:28:16
* @throws IOException
*/
public void createTable() throws IOException{
System.out.println("---------------创建表 START-----------------");
// 数据表表名
String tableNameString = "t_book";
// 新建一个数据表表名对象
TableName tableName = TableName.valueOf(tableNameString);
// 如果需要新建的表已经存在
if(admin.tableExists(tableName)){
System.out.println("表已经存在!");
}
// 如果需要新建的表不存在
else{
// 数据表描述对象
HTableDescriptor hTableDescriptor = new HTableDescriptor(tableName);
// 列族描述对象
HColumnDescriptor family= new HColumnDescriptor("base");;
// 在数据表中新建一个列族
hTableDescriptor.addFamily(family);
// 新建数据表
admin.createTable(hTableDescriptor);
}
System.out.println("---------------创建表 END-----------------");
}
/**
* 方法描述:查询整表数据
* 作者:孙建平
* 日期:2016-4-20 下午10:28:24
* @throws IOException
*/
public void queryTable() throws IOException{
System.out.println("---------------查询整表数据 START-----------------");
// 取得数据表对象
Table table = connection.getTable(TableName.valueOf("t_book"));
// 取得表中所有数据
ResultScanner scanner = table.getScanner(new Scan());
// 循环输出表中的数据
for (Result result : scanner) {
byte[] row = result.getRow();
System.out.println("row key is:" + new String(row));
List<Cell> listCells = result.listCells();
for (Cell cell : listCells) {
byte[] familyArray = cell.getFamilyArray();
byte[] qualifierArray = cell.getQualifierArray();
byte[] valueArray = cell.getValueArray();
System.out.println("row value is:" + new String(familyArray) + new String(qualifierArray)
+ new String(valueArray));
}
}
System.out.println("---------------查询整表数据 END-----------------");
}
/**
* 方法描述:按行键查询表数据
* 作者:孙建平
* 日期:2016年4月22日 上午7:44:31
*
*/
@Test
public void queryTableByRowKey() throws IOException{
System.out.println("---------------按行键查询表数据 START-----------------");
// 取得数据表对象
Table table = connection.getTable(TableName.valueOf("t_book"));
// 新建一个查询对象作为查询条件
Get get = new Get("row8".getBytes());
// 按行键查询数据
Result result = table.get(get);
byte[] row = result.getRow();
System.out.println("row key is:" + new String(row));
List<Cell> listCells = result.listCells();
for (Cell cell : listCells) {
byte[] familyArray = cell.getFamilyArray();
byte[] qualifierArray = cell.getQualifierArray();
byte[] valueArray = cell.getValueArray();
System.out.println("row value is:" + new String(familyArray) + new String(qualifierArray)
+ new String(valueArray));
}
System.out.println("---------------按行键查询表数据 END-----------------");
}
/**
* 方法描述:按条件查询表数据
* 作者:孙建平
* 日期:2016年4月22日 上午6:45:55
*
*/
public void queryTableByCondition() throws IOException{
System.out.println("---------------按条件查询表数据 START-----------------");
// 取得数据表对象
Table table = connection.getTable(TableName.valueOf("t_book"));
// 创建一个查询过滤器
Filter filter = new SingleColumnValueFilter(Bytes.toBytes("base"), Bytes.toBytes("name"),
CompareOp.EQUAL, Bytes.toBytes("bookName6"));
// 创建一个数据表扫描器
Scan scan = new Scan();
// 将查询过滤器加入到数据表扫描器对象
scan.setFilter(filter);
// 执行查询操作,并取得查询结果
ResultScanner scanner = table.getScanner(scan);
// 循环输出查询结果
for (Result result : scanner) {
byte[] row = result.getRow();
System.out.println("row key is:" + new String(row));
List<Cell> listCells = result.listCells();
for (Cell cell : listCells) {
byte[] familyArray = cell.getFamilyArray();
byte[] qualifierArray = cell.getQualifierArray();
byte[] valueArray = cell.getValueArray();
System.out.println("row value is:" + new String(familyArray) + new String(qualifierArray)
+ new String(valueArray));
}
}
System.out.println("---------------按条件查询表数据 END-----------------");
}
/**
* 方法描述:清空表
* 作者:孙建平
* 日期:2016年4月22日 上午7:11:31
*
*/
public void truncateTable() throws IOException{
System.out.println("---------------清空表 START-----------------");
// 取得目标数据表的表名对象
TableName tableName = TableName.valueOf("t_book");
// 设置表状态为无效
admin.disableTable(tableName);
// 清空指定表的数据
admin.truncateTable(tableName, true);
System.out.println("---------------清空表 End-----------------");
}
/**
* 方法描述:删除表
* 作者:孙建平
* 日期:2016-4-20 下午10:28:33
* @throws IOException
*/
public void deleteTable() throws IOException{
System.out.println("---------------删除表 START-----------------");
// 设置表状态为无效
admin.disableTable(TableName.valueOf("t_book"));
// 删除指定的数据表
admin.deleteTable(TableName.valueOf("t_book"));
System.out.println("---------------删除表 End-----------------");
}
/**
* 方法描述:删除行
* 作者:孙建平
* 日期:2016-4-20 下午10:28:33
* @throws IOException
*/
public void deleteByRowKey() throws IOException{
System.out.println("---------------删除行 START-----------------");
// 取得待操作的数据表对象
Table tab
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA_HBase 整合
共232个文件
jar:226个
xlsx:2个
project:1个
需积分: 12 7 下载量 4 浏览量
2018-04-13
17:05:09
上传
评论
收藏 134.31MB ZIP 举报
温馨提示
java与HBASE的整合:新建一个Java Project,导入JAR,修改开发机的hosts文件,修改虚拟机的配置文件,实现查询、新建、删除等
资源推荐
资源详情
资源评论
收起资源包目录
JAVA_HBase 整合 (232个子文件)
HBaseDemo.class 10KB
.classpath 8KB
jruby-complete-1.6.8.jar 13.19MB
jruby-complete-1.6.8.jar 13.19MB
hadoop-hdfs-2.5.1.jar 6.77MB
hadoop-hdfs-2.5.1.jar 6.77MB
hbase-server-1.1.2-tests.jar 4.8MB
hbase-server-1.1.2-tests.jar 4.8MB
hbase-protocol-1.1.2.jar 4.01MB
hbase-protocol-1.1.2.jar 4.01MB
hbase-server-1.1.2.jar 3.79MB
hbase-server-1.1.2.jar 3.79MB
hadoop-common-2.5.1.jar 2.83MB
hadoop-common-2.5.1.jar 2.83MB
hbase-thrift-1.1.2.jar 2.36MB
hbase-thrift-1.1.2.jar 2.36MB
guava-12.0.1.jar 1.71MB
guava-12.0.1.jar 1.71MB
netty-all-4.0.23.Final.jar 1.7MB
netty-all-4.0.23.Final.jar 1.7MB
hadoop-yarn-api-2.5.1.jar 1.57MB
hadoop-yarn-api-2.5.1.jar 1.57MB
commons-math3-3.1.1.jar 1.53MB
commons-math3-3.1.1.jar 1.53MB
hadoop-mapreduce-client-core-2.5.1.jar 1.43MB
hadoop-mapreduce-client-core-2.5.1.jar 1.43MB
htrace-core-3.1.0-incubating.jar 1.41MB
htrace-core-3.1.0-incubating.jar 1.41MB
hadoop-yarn-common-2.5.1.jar 1.35MB
hadoop-yarn-common-2.5.1.jar 1.35MB
jcodings-1.0.8.jar 1.23MB
jcodings-1.0.8.jar 1.23MB
hbase-client-1.1.2.jar 1.19MB
hbase-client-1.1.2.jar 1.19MB
leveldbjni-all-1.8.jar 1021KB
leveldbjni-all-1.8.jar 1021KB
jsp-2.1-6.1.14.jar 1001KB
jsp-2.1-6.1.14.jar 1001KB
snappy-java-1.0.4.1.jar 973KB
snappy-java-1.0.4.1.jar 973KB
commons-math-2.2.jar 965KB
commons-math-2.2.jar 965KB
jaxb-impl-2.2.3-1.jar 869KB
jaxb-impl-2.2.3-1.jar 869KB
zookeeper-3.4.6.jar 774KB
zookeeper-3.4.6.jar 774KB
netty-3.2.4.Final.jar 772KB
netty-3.2.4.Final.jar 772KB
jackson-mapper-asl-1.9.13.jar 762KB
jackson-mapper-asl-1.9.13.jar 762KB
jersey-server-1.9.jar 696KB
jersey-server-1.9.jar 696KB
guice-3.0.jar 694KB
guice-3.0.jar 694KB
apacheds-kerberos-codec-2.0.0-M15.jar 675KB
apacheds-kerberos-codec-2.0.0-M15.jar 675KB
hadoop-mapreduce-client-common-2.5.1.jar 647KB
hadoop-mapreduce-client-common-2.5.1.jar 647KB
commons-collections-3.2.1.jar 562KB
commons-collections-3.2.1.jar 562KB
jetty-6.1.26.jar 527KB
jetty-6.1.26.jar 527KB
jets3t-0.9.0.jar 527KB
jets3t-0.9.0.jar 527KB
protobuf-java-2.5.0.jar 521KB
protobuf-java-2.5.0.jar 521KB
hbase-common-1.1.2.jar 518KB
hbase-common-1.1.2.jar 518KB
hadoop-mapreduce-client-app-2.5.1.jar 480KB
hadoop-mapreduce-client-app-2.5.1.jar 480KB
log4j-1.2.17.jar 478KB
log4j-1.2.17.jar 478KB
hbase-it-1.1.2-tests.jar 471KB
hbase-it-1.1.2-tests.jar 471KB
spymemcached-2.11.6.jar 456KB
spymemcached-2.11.6.jar 456KB
jersey-core-1.9.jar 448KB
jersey-core-1.9.jar 448KB
httpclient-4.2.5.jar 423KB
httpclient-4.2.5.jar 423KB
jasper-compiler-5.5.23.jar 399KB
jasper-compiler-5.5.23.jar 399KB
hbase-rest-1.1.2.jar 376KB
hbase-rest-1.1.2.jar 376KB
libthrift-0.9.0.jar 339KB
libthrift-0.9.0.jar 339KB
commons-httpclient-3.1.jar 298KB
commons-httpclient-3.1.jar 298KB
avro-1.7.4.jar 296KB
avro-1.7.4.jar 296KB
commons-configuration-1.6.jar 292KB
commons-configuration-1.6.jar 292KB
commons-lang-2.6.jar 278KB
commons-lang-2.6.jar 278KB
commons-net-3.1.jar 267KB
commons-net-3.1.jar 267KB
commons-codec-1.9.jar 258KB
commons-codec-1.9.jar 258KB
junit-4.11.jar 239KB
junit-4.11.jar 239KB
共 232 条
- 1
- 2
- 3
资源评论
f_f0601
- 粉丝: 2
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功