- 浏览: 155306 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (113)
- Java工具类 (3)
- Hibernate (1)
- Struts>1&2 (0)
- Spring (0)
- Web前端 (1)
- 数据库 (2)
- 中间件 (3)
- 搜索引擎 (11)
- EJB (1)
- Log日志 (1)
- OS操作系统 (7)
- Java文档 (4)
- Security (1)
- Exception&Error (7)
- 日志&心情 (7)
- 开心一下 (3)
- 云计算 (41)
- Cache缓存 (4)
- MongoDB (1)
- OS操作系统 Linux (7)
- jquery (1)
- 机器学习 (2)
- Plugins (2)
- AJAX (1)
- Java工具 (1)
- WebService (1)
最新评论
-
a420144030:
你好,我想计算n篇文章的相似度,用mahout能处理吗,如何做 ...
mahout使用 -
di1984HIT:
OK,真的很牛啊
hadoop常见错误 -
xwl1991:
还真是这个问题 !
quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.ord
http://blog.csdn.net/karen_wang/archive/2011/03/28/6284154.aspx
1、需要的jar包:
commons-codec-1.4.jar
commons-logging-1.0.4.jar
hadoop-0.20.2-core.jar
hbase-0.20.6.jar
log4j-1.2.15.jar
zookeeper-3.2.2.jar
2、已有表结构:
1、表名:scores
2、列族:
course:art
course:math
grade:
3、scan 'scores'的内容:
ROW COLUMN+CELL
Jerry column=course:art, timestamp=1301294630194, value=80
Jerry column=course:math, timestamp=1301294630132, value=100
Jerry column=grade:, timestamp=1301294630073, value=2
Jim column=course:art, timestamp=1301294630363, value=97
Jim column=course:math, timestamp=1301294630305, value=100
Jim column=grade:, timestamp=1301294630247, value=3
Tom column=course:art, timestamp=1301294630015, value=97
Tom column=course:math, timestamp=1301294629987, value=87
Tom column=grade:, timestamp=1301294629931, value=1
4、代码:
view plaincopy to clipboardprint?
package org.myhbase;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
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.filter.FilterList;
import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
import org.apache.hadoop.hbase.io.Cell;
import org.apache.hadoop.hbase.util.Bytes;
public class HBaseBasic03 {
private static HBaseConfiguration hbaseConfig=null;
static{
Configuration config=new Configuration();
config.set("hbase.zookeeper.quorum","192.168.10.149,192.168.10.44,192.168.10.49");
config.set("hbase.zookeeper.property.clientPort", "2181");
hbaseConfig=new HBaseConfiguration(config);
}
/**
* get方式,通过rowKey查询
* @param tablename
* @param rowKey
* @throws IOException
*/
public static void selectByRowKey(String tablename,String rowKey) throws IOException{
HTable table=new HTable(hbaseConfig,tablename);
Get g = new Get(Bytes.toBytes(rowKey));
Result r=table.get(g);
for(KeyValue kv:r.raw()){
System.out.println("column: "+new String(kv.getColumn()));
System.out.println("value: "+new String(kv.getValue()));
}
}
/**
* get方式,通过rowKey、column查询
* @param tablename
* @param rowKey
* @param column
* @throws IOException
*/
public static void selectByRowKeyColumn(String tablename,String rowKey,String column) throws IOException{
HTable table=new HTable(hbaseConfig,tablename);
Get g = new Get(Bytes.toBytes(rowKey));
g.addColumn(Bytes.toBytes(column));
Result r=table.get(g);
for(KeyValue kv:r.raw()){
System.out.println("column: "+new String(kv.getColumn()));
System.out.println("value: "+new String(kv.getValue()));
}
}
public static void selectByFilter(String tablename,List<String> arr) throws IOException{
HTable table=new HTable(hbaseConfig,tablename);
FilterList filterList = new FilterList();
Scan s1 = new Scan();
for(String v:arr){ // 各个条件之间是“与”的关系
String [] s=v.split(",");
filterList.addFilter(new SingleColumnValueFilter(Bytes.toBytes(s[0]),
Bytes.toBytes(s[1]),
CompareOp.EQUAL,Bytes.toBytes(s[2])
)
);
// 添加下面这一行后,则只返回指定的cell,同一行中的其他cell不返回
// s1.addColumn(Bytes.toBytes(s[0]), Bytes.toBytes(s[1]));
}
s1.setFilter(filterList);
ResultScanner ResultScannerFilterList = table.getScanner(s1);
for(Result rr=ResultScannerFilterList.next();rr!=null;rr=ResultScannerFilterList.next()){
for(KeyValue kv:rr.list()){
System.out.println("row : "+new String(kv.getRow()));
System.out.println("column : "+new String(kv.getColumn()));
System.out.println("value : "+new String(kv.getValue()));
}
}
}
public static void main(String [] args) throws IOException{
// 按rowkey查询,查询Tom行的所有cell
HBaseBasic03.selectByRowKey("scores","Tom");
// 按rokey 和 column 来查询,查询Tom行course列族的所有列值
HBaseBasic03.selectByRowKeyColumn("scores","Tom","course");
// Filter多条件查询,条件:查询 course列族中art列值为97 ,且 course列族中math列值为100的行
List<String> arr=new ArrayList<String>();
arr.add("course,art,97");
arr.add("course,math,100");
HBaseBasic03.selectByFilter("scores",arr);
}
}
发表评论
-
用Sqoop把数据从HDFS导入到MYSQL
2012-10-27 23:30 2356转自:http://www.kaifajie.cn/mySQL ... -
大数据的储存:百度HDFS集群的数据压缩
2012-08-30 17:48 12112012年4月13日,由IT168(ITP ... -
用sqoop进行mysql和hdfs系统间的数据互导
2012-07-31 16:32 1944转自:http://abloz.com/2012/07/19/ ... -
从hive将数据导出到mysql
2012-07-31 16:31 1826转自:http://abloz.com/2012/07/20/ ... -
Hive SQL
2012-07-19 13:49 1427转自:http://www.tbdata.org/ ... -
Hive优化总结
2012-07-09 15:18 4335优化时,把hive sql当做ma ... -
hadoop/mapred 优化方法
2012-06-12 11:47 1397从三个方面着手优化 : 1. hadoop配置 2. ... -
hadoop集群dfs.data.dir目录权限问题导致节点无法启动
2012-06-11 18:32 6229安装使用Hive的时候发现文件无法从本地拷贝到hadoo ... -
hadoop中的balancer
2012-06-11 15:49 1148对于HDFS集群,经常长时间的运行,尤其是大量的delete操 ... -
Hadoop集群上使用Lzo压缩
2012-05-28 11:03 935转自:http://www.tech126.com/hadoo ... -
使用Hive读取Hbase中的数据
2012-05-23 13:12 2277转自:http://www.4ucode.com/Study/ ... -
在XP系统下配置eclipse集成hadoop开发
2012-05-05 11:09 1051一、目的:由于hadoop只能在Linux环境下运行,所以对于 ... -
使用Hive读取Hbase中的数据
2012-04-18 14:24 1100转自:http://www.4ucode.com/Study/ ... -
Web日志分析方法概述 让复杂的数据挖掘变得简单可行
2012-04-13 16:31 875志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志 ... -
应用sqoop将MySQL数据库中的数据导入Hbase
2012-04-12 11:31 2066转自:http://www.bwxxkj.com/a/jish ... -
hadoop中的trash机制,恢复删除的文件
2012-03-31 13:46 2203Hadoop回收站trash,默认是关闭的。 1.修改con ... -
Hadoop 和DBMS 的互补性
2012-03-29 12:22 675随着Microsoft 也加入Hadoop 阵营,Hadoop ... -
Hadoop 中的两表join
2012-03-29 12:20 853转自:http://www.gemini52013 ... -
各版本编译hadoop eclipse plugin
2012-03-29 12:19 1386转自:http://www.gemini52013 ... -
hadoop常见错误
2012-03-24 13:04 1674错误1:bin/hadoop dfs 不能正常启动,持续提 ...
相关推荐
HBase分页查询实现 HBase作为一个NoSQL数据库,具有高性能、...本文讲解了如何使用Java语言实现HBase的分页查询,并介绍了HBase的配置、HTablePool、获取HBase表、字节数组的转换、Filter和ResultScanner等知识点。
5. **过滤器和比较器**:通过使用`Filter`接口,开发者可以实现复杂的数据筛选逻辑,如基于特定条件的查询。同时,`Comparator`接口允许自定义列值的比较规则。 6. **安全性与权限**:Java-HBase开发包也支持HBase...
新建一个 Java 项目,然后添加相关的 jar 包,包括 hadoop-core-0.20.204.0.jar、hbase-0.90.4.jar、hbase-0.90.4-tests.jar 以及 Hbase 资源包中 lib 目录下的所有 jar 包。 ### 2. 主要程序 下面是一个 Java ...
在HBase这个分布式列式数据库中,Java API是开发者常用的一种接口来操作HBase,包括创建表、插入数据、查询数据以及实现分页等操作。本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要...
本文将讲解如何使用Java语言实现HBase的分页查询。 一、HBase概述 HBase是一个基于Hadoop的分布式数据库,它提供了高效的数据存储和检索能力。HBase可以处理大量的数据,支持高并发的读写操作,并且具有很高的可...
hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作hbase。 动态query封装:类似于myibatis,可以使用xml配置动态语句查询hbase。 insert,update支持: 建立在hbase的checkAndPut之上。 ...
在HBase这个分布式列式数据库中,分页查询是一个重要的功能,尤其对于处理大量数据时,它能够有效地提高性能并优化用户体验。HBase本身并不直接支持像SQL那样的传统分页,但通过一些策略和工具,我们可以实现类似的...
5. 数据模型和数据访问层:包括RowKey设计、过滤器(Filter)和Scanners,用于高效查询和数据过滤。 6. RPC框架:用于处理客户端请求,实现分布式通信。 通过深入学习HBase 0.94的源代码,开发者可以了解到如何...
在Java中操作HBase,过滤数据是至关重要的任务,特别是在处理大数据时,高效地筛选出所需信息能够极大地提升性能。本文将深入探讨HBase的比较过滤器RowFilter的使用源码,帮助你理解如何在实际项目中应用这一关键...
在Java API中访问HBase是大数据处理中常见的一项任务,HBase作为一个分布式、列式存储的NoSQL数据库,常用于海量数据的实时读写。在这个Java API访问HBase的Maven项目中,我们将探讨如何配置项目,引入依赖,以及...
SpringBoot集成HBase是当前大数据处理和存储解决方案中的一种常见组合。HBase是基于Hadoop的分布式、可扩展的NoSQL数据库,能够存储大量的结构化和非结构化数据。SpringBoot则是一个基于Java的现代Web框架,提供了...
在HBase Shell中,可以使用Filter来过滤查询结果。例如,使用`SingleColumnValueFilter`来过滤特定的列值: ```shell get 'notes', 'rowkey1', {FILTER => "SingleColumnValueFilter 'meta','title' = 'title1'"} `...
在IT行业中,Java、Hive、HBase以及Spark是大数据处理和分析领域的重要工具。本压缩包"javaApi_sparkhiveAPI_hbaseAPI.zip"包含了2019年8月至10月期间针对这些技术的Java版API实现,以及与Spark相关的Hive和HBase ...
对于明细查询,HBase提供了多种查询方式,如Get、Scan等,可以根据具体需求选择合适的API。Get操作用于获取单行数据,而Scan则可以用来批量扫描表中的多行数据。 在使用HBase进行查询时,我们还需要关注性能优化。...
- **高级功能**:HBase还提供了更多的高级功能,如过滤器(Filter)、批量操作(Batch)、观察者(Observer)等。 ### 面向的目标受众 该教程主要面向以下几类人群: - **希望从事大数据分析领域的专业人士**:包括软件...
HBase Java API HBase 是 Hadoop 的数据库,能够对大数据提供随机、实时读写访问。他是开源的,分布式的,多版本的,面向列的,存储模型。HBase 的整体结构主要包括 HBase Master、HRegion 服务器和 HRegion Server...
查询HBase中的数据通常使用`get`命令。例如,查询“zhangsan”的地址: ```shell get 'student', 'zhangsan', 'info:address' ``` 查询“lisi”的“Hadoop”成绩: ```shell get 'student', 'lisi', 'info:Hadoop' `...
接着,jackson-databind-2.12.4.jar是Jackson JSON库的数据绑定模块,它允许将JSON对象映射到Java对象,反之亦然,这对于HBase中的数据序列化和反序列化至关重要。同时,jackson-core-2.12.4.jar是Jackson库的基础...
HBase提供了多种查询方式,包括单条查询和批量查询。 单条查询 单条查询是通过rowkey在table中查询某一行的数据。HTable提供了get方法来完成单条查询。Get对象包含了一个Get查询需要的信息,它的构造方法有两种:...