冰鉴项目流程图
2021-02-25 18:06:01 9 举报
冰鉴项目
作者其他创作
大纲/内容
如果有画像,最后Offset:{ key: null value: startPos和endPos}
put
\bworker
Offset
1.元数据配置
4.画像
setResult
\b初始化spark执行线程:8个即同时最多只会有8个spark任务能执行
2.元数据生成
take
spark任务执行
getResult,处理结果,callback结果
meta文件
\b特殊处理
broker
uisum
uidcount
运行在多个线程里
文件结构1.存储路径格式:meta和data文件类似baseUrl/hive表名/日期/列名/meta/16个分区如:/user/olap/broccoli/low_data /mds_user_info /20190826 /degree /meta /0span style=\"font-size: inherit;\
处理上述结果,得到需要的数据结构
data文件
线程run 方法: while (isRunning && !Thread.currentThread().isInterrupted())
ArrayBlockingQueue
1.基本检验2.通过meta目录下的文件得到对应的data某个分区文件3.读取对应筛选后的uid目录下的分区文件,并反序列化。4.遍历读取meta目录下的某个文件,通过startPos和endPos得到对应的data文件数据,并反序列化。 由于meta文件最后的汇总key为空,无法记取,退出循环, 需要用data文件的filesize - endpos读取最后的数据,并反序列化 uidcount: 某个基数的data文件 与 筛选后的uid文件 的交集 uidsum: 某个基数的data文件 uidcount<=uidsum colsum: 筛选后的uid数量(筛选后的data文件全部)5..collect()
\b调用画像接口
Offset:{ key: 基数 value: startPos和endPos}
colsum
// List<TableColResult>[{ \"table\":\"\
\b通用配置的三张表:label_info, table_info, column_info
高基数:hive自定义udaf查找完后转worker(外部查询)低基数:直接转worker
3.筛选
// 这个数据结构是根据接口请求参数,从数据库取值拼接而成{ \"mds_user_info\":{ \"table\":\"mds_user_info\
uidsum
// Result{ \"status\":\"\
0 条评论
回复 删除
下一页