`
sunasheng
  • 浏览: 122843 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Hbase过滤记录数问题(新增UV/活跃UV)

阅读更多

 

public static Configuration initConf(Configuration conf, String date)
		throws IOException {
	Scan scan = new Scan();
	scan.setCaching(300);
	scan.setMaxVersions();
	scan.addFamily(HTableConstant.IPJ_STATICS_INDEX_IMEI_FAMILY);
	scan.addColumn(HTableConstant.IPJ_STATICS_INDEX_IMEI_FAMILY, 
			HTableConstant.IPJ_STATICS_INDEX_VERSION_QUALIFIER);
	scan.addColumn(HTableConstant.IPJ_STATICS_INDEX_IMEI_FAMILY,
			HTableConstant.IPJ_STATICS_INDEX_TIME_QUALIFIER);
	scan.addColumn(HTableConstant.IPJ_STATICS_INDEX_IMEI_FAMILY,
			HTableConstant.IPJ_STATICS_INDEX_DATE_QUALIFIER);
	FilterList list = new FilterList();
	HBaseManager.addTimeStampExcludeFilter(list,
			HTableConstant.IPJ_STATICS_INDEX_IMEI_FAMILY,
			HTableConstant.IPJ_STATICS_INDEX_DATE_QUALIFIER,
			Bytes.toBytes(date));
	scan.setFilter(list);
	conf.set("date", date);
	conf.set(TableInputFormat.INPUT_TABLE,
	HTableConstant.ACCESS_INDEX_TABLE_NAME);
	conf.set(TableInputFormat.SCAN, StatUtils.convertScanToString(scan));
	return conf;
}

 使用上面的方法进行过滤(addTimeStampExcludeFilter)的话,map中获取app_id

imei的方法:

protected void map(ImmutableBytesWritable key, Result value, Context context)
		throws IOException, InterruptedException {

	String keyStr = Bytes.toString(key.get());
	String appIdStr = keyStr.substring(2, 4);
	byte[] app_id = Bytes.toBytes(appIdStr);
	byte[] imei = keyStr.substring(4).getBytes();
	
	// if version = 2
	if (value.raw().length == 2) {
		byte[] version = value.getValue(
				HTableConstant.IPJ_STATICS_INDEX_IMEI_FAMILY,
				HTableConstant.IPJ_STATICS_INDEX_VERSION_QUALIFIER);
		byte[] time = value.getValue(
				HTableConstant.IPJ_STATICS_INDEX_IMEI_FAMILY,
				HTableConstant.IPJ_STATICS_INDEX_TIME_QUALIFIER);
		
		if (version != null) {
			outkey.set(app_id, 0, app_id.length, version,
			imei, time);
			context.write(outkey, ONE);
		}
	}
}

 value.raw().length的值:

1.job中过滤一行时,那么 value.raw().length = 1 表示新增UV

value.raw().length > 1 表示活跃UV

2.job中过滤两行时,那么(上述代码情况)

value.raw().length = 2 表示新增UV

value.raw().length > 2 表示活跃UV

 

分享到:
评论

相关推荐

    hbase-2.4.16-bin.tar.gz

    hbase官网下载地址(官网下载太慢): https://downloads.apache.org/hbase/ 国内镜像hbase-2.4.16: https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.16/hbase-2.4.16-bin.tar.gz

    hbase-0.98.1源码包

    通过阅读源码,开发者可以更深入地理解HBase的工作原理,优化应用程序性能,解决遇到的问题,或者为HBase贡献新的功能和改进。此外,还可以对比不同版本的源码,了解HBase的发展历程和技术演进。

    pinpoint的hbase初始化脚本hbase-create.hbase

    搭建pinpoint需要的hbase初始化脚本hbase-create.hbase

    zookeeper+hadoop+hbase.rar

    【标题】"zookeeper+hadoop+hbase.rar" 提供了一个集成的大数据处理环境,其中包含了三个关键组件:Zookeeper、Hadoop和HBase。这些组件在大数据生态系统中扮演着重要角色,尤其对于分布式存储和计算。 【Zookeeper...

    hbase-0.98.9-src.tar

    4. http://www.apache.org/dyn/closer.cgi/hbase/ 5. http://hbase.apache.org/docs/current/source-repository.html 6. http://hbase.apache.org/docs/current/issue-tracking.html 7. ...

    在hadoop-3.1.2上安装hbase-2.2.1.pdf

    本文将HBase-2.2.1安装在Hadoop-3.1.2上,关于Hadoop-3.1.2的安装,请参见《基于zookeeper-3.5.5安装hadoop-3.1.2》一文。安装环境为64位CentOS-Linux 7.2版本。 本文将在HBase官方提供的quickstart.html文件的指导...

    HBase单机版部署教程

    echo "export HBASE_HOME=/home/demo/hbase/hbase-1.2.2" >> /etc/profile echo "export PATH=$PATH:$HBASE_HOME/bin" >> /etc/profile source /etc/profile 配置hbase-env.sh文件 现在,我们需要配置hbase-env....

    Hadoop学习四十二:HBase 过滤器

    本节我们将深入探讨HBase中的过滤器机制,这是优化数据查询性能的关键技术。 HBase过滤器允许我们在读取数据时对结果进行筛选,减少不必要的I/O操作,从而提高效率。它们是通过实现`Filter`接口来定义的,并在扫描...

    hbase-2.4.11-bin.tar.gz

    7. **性能优化**:HBase提供了多种优化策略,如表分区、布隆过滤器、压缩等,可以根据实际场景调整以提升性能。 8. **安全性**:HBase支持Kerberos认证,可以实现安全的集群环境。同时,可以利用Hadoop的权限管理来...

    hbase-shell批量命令执行脚本的方法

    批量执行hbase shell 命令 #!/bin/bash source /etc/profile exec $HBASE_HOME/bin/hbase shell <<EOF truncate 'tracker_total_apk_fact_zyt' major_compact('t_abc') disable 't_abc' drop 't_abc' create...

    Java SpringBoot 连接 Hbase Demo

    Java SpringBoot 连接 Hbase Demo 创建表 插入数据 列族 列 查询:全表、数据过滤 删除数据 删除表 Hbase 集群搭建:https://blog.csdn.net/weixin_42176639/article/details/131796472

    hbase过滤器简单教程

    过滤器可以根据列族、列、版本等更多的条件来对数据进行过滤,基于 HBase 本身提供的三维有序(行键,列,版本有序),这些过滤器可以高效地完成查询过滤的任务,带有过滤器条件的 RPC 查询请求会把过滤器分发到各个...

    Hive和Hase配置

    配置hive-0.9.0和hbase-0.94.1结合使用,部分内容如下: 1.拷贝hbase-0.94.1.jar和zookeeper-3.4.3.jar到hive/lib下。 注意:如hive/lib下已经存在这两个文件的其他版本,建议删除后使用hbase下的相关版本。 //...

    在windows上安装Hbase

    可以从HBase的官方网站(http://hadoop.apache.org/hbase/)下载。这里使用的是HBase-0.20.4版本。 三、安装HBase 1. 解压下载的压缩包。 2. 在conf/hbase-env.sh文件中添加配置项,例如export JAVA_HOME=/...

    HBase的图形化管理工具/Hbase的GUI工具

    由于网上下的不支持最新的hadoop,hbase 版本自己稍微修改了下,支持最新版本HBase的图形化管理工具,目前修改改为hadoop-2.7.1版本,hbase-1.1.2版本,依赖...hbase配置直接在hbase.xml中配置即可,如有问题欢迎留言。

    Hbase过滤器详解.md

    Hbase过滤器详解,基础篇

    基于wifi抓取信息的大数据查询系统,主要内容为HBase的创建与导入,用户轨迹查询,碰撞分析,以及查询数据的明细和汇总统计

    运行HBase服务端 "/mnt/hgfs/yyx/hbase-0.98.18-hadoop1/bin/start-hbase.sh"(此目录实际会有变化) 根据实际测试情况,调整参数,运行项目即可 Web方式 Myeclipse导入webApp项目 运行Hive服务端 "/mnt/hgfs/yyx/...

    centos7 安装 hbase单机版

    wget http://mirror.bit.edu.cn/apache/hbase/stable/hbase-2.2.3-bin.tar.gz 解压压缩包 tar -zxvf hbase-2.2.3-bin.tar.gz 修改/opt/hbase-2.2.3/conf/hbse-env.sh文件 第一步 设置javahome export JAVA_HOME=/...

Global site tag (gtag.js) - Google Analytics