1.HBase如果加了列限定,如果该列不存在时返回的结果为empty.
看下面的代码:
1
2
|
Get get = new Get(Bytes.toBytes( "100" ));
get.addColumn(Bytes.toBytes( "info" ), Bytes.toBytes( "name" ));
|
这里加入了列限定,也就是只返回列族info下面的name字段。但是如果name字段根本不存在,返回的Result在调用result.isEmpty()时则返回为true,也就是说就算其他字段存在,也什么都没返回来,包括rowkey也没有返回来。当然,如果是限定多个列,只要一个列存在就可以正常返回。所以需要注意。
2.HBase在scan时指定的StartRow里面不能加-
看下面的代码:
1
2
3
4
|
Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes( "3136947-" ));
scan.setStopRow(Bytes.toBytes( "3136947-" + 1 ));
|
我的本意是查询rowkey以 3136947- 开头的行,但是因为我的里面有一个-(“杠”),所以什么都没返回,去掉-后正常。这说明这里是不能使用-,-也并不是转义字符,转义后也还是scan不出来的。不知道其他字符是不是也不行,没有测试。 所以需要注意。
3.HBase在scan时过滤掉指定列不存在的记录
如果想返回某个字段必须存在的行,不存在该字段的记录过滤掉不返回,方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
|
Scan scan = new Scan();
scan.setStartRow(Bytes.toBytes( "3136947" ));
scan.setStopRow(Bytes.toBytes( "3136947" + 1 ));
scan.addColumn(Bytes.toBytes( "info" ),
Bytes.toBytes( "name" ));
SingleColumnValueFilter filter = new SingleColumnValueFilter(Bytes.toBytes( "info" ),
Bytes.toBytes( "name" ),
CompareFilter.CompareOp.NOT_EQUAL, Bytes.toBytes( "0" ));
filter.setFilterIfMissing( true );
scan.setFilter(filter);
|
注意:如果是判断某个列是否存在,必须在addColumn里面加上该列,也就是必须返回的字段里面必须包含该列,否则也不会返回,因为在处理的时候是调用addColumn然后才会调用过滤器。
这里的过滤器里面指定该列的字段值必须不等于0(当然,如果你的name里有等于0的当然不能使用0),并且设置setFilterIfMissing为true,也就是设置为如果该列不存在就过滤掉这条数据,默认为false。
http://blog.sina.com.cn/s/blog_68674da70102vabb.html
相关推荐
HDFS+MapReduce+Hive+HBase十分钟快速入门.pdf
标题中的“基于Python+SpringBoot+Vue+HDFS+MapReduce+HBase+Hive+Kafka+Spark”提到了一系列技术,它们都是大数据处理、分布式系统和Web开发的重要组件。接下来,我们将深入探讨这些技术及其在实际项目中的应用。 ...
mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载
在大数据领域,构建一个完整的生态系统是至关重要的,其中包括多个组件,如Hadoop、Spark、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...
Java Web是开发Web应用程序的标准技术,用于构建服务器端功能和用户界面。推荐系统则是利用用户行为和兴趣模式来预测他们可能喜欢的电影,通常包括矩阵分解、协同过滤等算法。 在实际项目中,数据预处理是一个重要...
HDFS+MapReduce+Hive+HBase十分钟快速入门,包括这几个部分的简单使用
本资料“HDFS+MapReduce+Hive+HBase十分钟快速入门”旨在帮助初学者迅速理解这些技术的基础概念和应用场景。 **HDFS(Hadoop Distributed File System)**: HDFS是Apache Hadoop项目的核心部分,是一种分布式文件...
通过这一阶段的调研总结,从内部机理的角度详细分析,HDFS、MapReduce、Hbase、Hive是如何运行,以及基于Hadoop数据仓库的构建和分布式数据库内部具体实现。如有不足,后续及时修改。整个Hadoop的体系结构主要是通过...
《hadoop-HDFS+MapReduce+Hive+Hbase快速入门》,一门入门hadoop的经典书籍,相信能够给学习云计算的大家带来帮助。
至于Phoenix,它是SQL查询引擎,直接在HBase之上提供关系型数据库功能,使得通过SQL语句操作HBase变得更加方便。而Sqoop2则是一个数据迁移工具,用于在Hadoop和传统数据库之间导入导出数据。 总的来说,这个安装...
在构建大数据处理环境时,Hadoop、HBase、Spark和Hive是四个核心组件,它们协同工作以实现高效的数据存储、处理和分析。本教程将详细介绍如何在Ubuntu系统上搭建这些组件的集群。 1. **Hadoop**:Hadoop是Apache...
总结,HBase MapReduce的结合使用,为企业提供了强大的大数据处理能力,既满足了实时性需求,又能够处理海量数据。通过Eclipse工程实例,开发者可以直观地学习和掌握这种结合方式,提升大数据处理的技能。
1. **案例介绍**:详细讲解如何使用HBase和MapReduce进行数据处理,包括设置环境、配置HBase与MapReduce的集成、编写MapReduce程序等步骤。 2. **代码示例**:提供实际的Java代码,演示如何编写Map和Reduce函数来...
这些工具是大数据处理生态系统中的核心组件,下面将分别详细介绍它们的功能和用法。 **Hadoop**: Hadoop是Apache基金会的一个项目,它提供了一个分布式文件系统(HDFS)和MapReduce计算模型。HDFS允许数据在多台...
它主要由两个部分组成:HDFS(Hadoop Distributed File System)和MapReduce。 - **HDFS**:用于存储大规模数据的分布式文件系统,可以高效地处理PB级别的数据量。 - **MapReduce**:一种编程模型,用于并行处理...
这些API的文档会详细介绍如何使用各种功能,例如如何连接到HBase集群、如何执行CRUD(创建、读取、更新、删除)操作以及如何实现自定义的过滤器和比较器等。 此外,API文档中也包含了如何设置和配置HBase作业的示例...
基于MapReduce和HBase的海量网络数据处理 大数据时代,网络数据的处理和分析变得越来越重要。传统的网络数据处理模式已经无法满足大数据量的需求,需要寻求更高效的网络数据计算模式和数据存储模式。基于MapReduce...
- 关闭防火墙:使用命令`systemctl stop firewalld`关闭防火墙,并使用`systemctl disable firewalld`禁用防火墙启动。 - 设置DNS解析:确保所有服务器之间可以通过名称相互通信。 - 安装必要的工具:例如SSH、SCP等...