博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark+Hbase 亿级流量分析实战(数据结构设计)
阅读量:5805 次
发布时间:2019-06-18

本文共 1652 字,大约阅读时间需要 5 分钟。

背景

靠文章生存的大厂们简书/小红书/CSDN(PS:好吧你们仨记得给我广告费),对优秀的文章进行大数据分析的工作必不可以少了,本系列文章将会从关于文章的各个维度进行实战分析,这系列文章新手可借着踏入大数据研发的大门,至于大数据的大佬们可以一起来相互伤害,至少为什么取名为 ''百亿级流量实时分析统计'' 看完后整个系列的文章你就知道了,相信大家都是会举一反三的孩子们。

作者

网名: 姓名:不晓 年龄:不知 身高:不祥 性别:男

日志结构

日志存储结构设计如下,肯定很多小伙伴要问为什么设计成JSON形式?多占空间?多... 统一回复:可读易排查

{    "time": 1553269361115,    "data": {        "type": "read",        "aid": "10000",        "uid": "4229d691b07b13341da53f17ab9f2416",        "tid": "49f68a5c8493ec2c0bf489821c21fc3b",        "ip": "22.22.22.22"    }}复制代码

参数

名称 说明
time 精确到毫秒 时间
type login:登录/register:注册/read:阅读/like:喜欢/comment:评论/share:分享/reward:赞赏/publish:发布文章/update:发布更新/private:设置私密/delete:删除
aid 数字 文章编号
uid uuid 用户编号
tid uuid 用户临时缓存编号
ip ip IP地扯

Hbase结构

日志表

create 'LOG_TABLE',{NAME => 'info',TTL => '30 DAYS',CONFIGURATION => {
'SPLIT_POLICY' => 'org.apache.hadoop.hbase.regionserver.KeyPrefixRegionSplitPolicy','KeyPrefixRegionSplitPolicy.prefix_length'=>'2'},COMPRESSION=>'SNAPPY'},SPLITS => ['20', '40', '60', '80', 'a0', 'c0', 'e0']复制代码
  1. rowkey --------> 49|20190101000000000|f68a5c (时间+用户ID) **设计原则:**能按时间维度查询,而且还能打散数据。
  2. 过期时间 30天 --------> 够长的了,反正日志源文件还在 **设计原则:**其实就是为了不占用那么多的存储资源。
  3. 预分区 -------->使用rowkey前两位,00~ff=256 个region,表示现在的业务已经可以满足要求。 **设计原则:**是为了能尽量打散数据到各台Region Server

用户表

create 'USER_TABLE',{NAME => 'info',CONFIGURATION => {
'SPLIT_POLICY' => 'org.apache.hadoop.hbase.regionserver.KeyPrefixRegionSplitPolicy','KeyPrefixRegionSplitPolicy.prefix_length'=>'2'},COMPRESSION=>'SNAPPY'},SPLITS => ['20', '40', '60', '80', 'a0', 'c0', 'e0']复制代码
  1. rowkey --------> 49f68a5c8493ec2c0bf489821c21fc3b (用户ID,前8位) **设计原则:**唯一性,通过ID能直接找到用户信息。

现在还没涉及到程序设计与实现篇章,后续将会在 "百亿级流量实时分析统计" 系列文章中逐一实现。


转载地址:http://uwgfx.baihongyu.com/

你可能感兴趣的文章
【REDO】删除REDO LOG重做日志组后需要手工删除对应的日志文件(转)
查看>>
nginx 301跳转到带www域名方法rewrite(转)
查看>>
AIX 配置vncserver
查看>>
windows下Python 3.x图形图像处理库PIL的安装
查看>>
【IL】IL生成exe的方法
查看>>
network
查看>>
SettingsNotePad++
查看>>
centos7安装cacti-1.0
查看>>
3个概念,入门 Vue 组件开发
查看>>
没有JS的前端:体积更小、速度更快!
查看>>
数据指标/表现度量系统(Performance Measurement System)综述
查看>>
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
Angular2, NativeScript 和 React Native比较[翻译]
查看>>
论模式在领域驱动设计中的重要性
查看>>
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>