hbase记录用户访问日志

我们目前对每天的用户访问量,用户活跃度的统计仅仅是用growingIO,统计得不是很准确。因此需要自己在后台做用户访问记录,以便分析用户行为,选择hbase数据库做用户行为记录。
hbase数据库里面,每个系统每天的访问日志记录在一张表上,由于hbase只能按照rowkey来快速检索数据,并且rowkey是按照字典顺序保存的,是占用内存的。因此日志表的rowkey的设计就是重点了。最终采用的方案是12位用户ID+8位时间戳+2位用户访问一级目录+2位用户访问二级目录,整个占用24个字节,在64位系统中不浪费内存空间。用户ID是连续递增的整数转成的12位字符串。8位时间戳是采用从当天凌晨起的毫秒数转成8位字符串。
日志表里面记录1.访问的参数,方便重现问题。2.返回的用户提示,方便我们分析接口调用失败原因。3.用户访问的成功失败结果4.用户访问的IP。5.用户访问的操作系统。
实际运行时,需要根据当前的时间和日志的时间比对,如果日期发生了变化,需要重新生成新的一天的日志表。这里涉及线程同步的问题,可以用synchronized来解决。还涉及不同机器同步的问题,有可能不同机器都在同时新建日志表,这个时候的处理就要注意了,先判断hbase中有没有日志表,即使没有,在创建日志表的时候也可能失败,因为其他的机器在本机器判断日志表存在后,创建了日志表。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值