这一段时间一直忙着低头赶路,现在终于有机会停下来整理一下行囊了。
这一路上, 经历过下里巴人, 也体验过阳春白雪, 我们一直在进步。
之所以文章开篇称为启明星,不只是因为我们的数据平台称为启明星,也因为平台从无到有,从1.0到2.0的这个过程,它像一颗启明星一样, 将我从之前那迷茫的、混沌的黑暗中带了出来,我明确了自己的发展方向, 在这技术的汪洋中找到了自己的那一叶孤岛,也看到了今后职业生涯的无数可能。
人生能遇到一个这样的项目,能开启自己的职业生涯,那无疑是幸运的。
启明星已经与我结下了很深厚的姻缘。
若干年后,抬头仰望那一望无际的星空,相信启明星任然会给予我无限的信心。
废话不多说, 步入正文。
启明星是我们的数据分析平台, 相信和大多数公司的数据分析平台一样, 它的主要作用就是收集后台服务日志,活动日志,客户端埋点日志,崩溃日志等, 进行解析, 清理后,统计传统的指标信息,评估活动效果,监控服务性能,客户端性能等。在数据分析的基础上,我们也开始了机器学习,数据挖掘的工作,这就是我们的另一个平台-数据秀.
每个公司的做法各有不同,但是基本的功能点都是一样的。从启明星1.0到启明星2.0, 我们摸索着走过来,我不敢说我们的做法是好的, 但我们的很多经验是值得分享出来的。我相信我们的经验是最全面的。 ?从服务端日志格式, 客户端埋点日志加密方式, 服务端nginx ?ip透传, 到日志收容,日志清洗,日志解密, 从数据仓库,数据立方 到olap 架构, 从hadoop的分布式计算,到storm的流计算,spark的迭代计算, 从简单的bi统计,到复杂的机器学习算法, 无不涉及。
接下来我们就来具体了解一下在整个平台构建过程中涉及到的方方面面
启明星1.0 (下里巴人)
日志记录
应用服务器和web服务器
access_log
web服务器ip透传
在线日志和离线日志
埋点日志加密策略和上传策略
日志服务器
日志收容
flume-ng
logstash, scribe, chukwa, kafka, flume对比
日志处理
hadoop
hdfs
mapreduce
yarn
etl
非法日志的过滤条件
正则表达式
数据仓库相关理论(数据立方体, 上钻,下卷,切面等)
olap
轻量级的olap框架mondrian
mongo集群用作olap框架
分片集群概念
mr
aggregate框架
dump层(从数据仓库导出到olap层)
dump-job
dump-core
dump-mapping
任务调度
oozie,azkaban
工作流监控
服务
统一化参数
sql parser
负载均衡
nginx
展现
bootstrap
highchart, nvd3, chart.js
amd, cmd( require.js)
其他
elasticsearch对olap的支持到底靠不靠谱
一直憧憬的实时
启明星2.0 (阳春白雪)
与1.0相同,接入了更多的日志,比如h5的日志,开放平台的日志,埋点日志除了app的之外,还有车机的,
tt的接入
sls与tt的异同
与传统日志收容框架相比
日志收容监控(基线, 同比, 环比等)
odps
表结构存储
支持sql
完整的生态系统
摩萨德任务监控
sql,udf
drds
oceanbase,garuda
大数据量下olap框架: facebook的pinot, apache的kylin等
datax
odps插件
python脚本
jar包
支持多种外围存储导出, drds,rds,hbase, ots,mongodb, tair,ots等
完整的工作流配置,监控
服务组件化架构
分布式服务组件的使用
dubbo
hsf
configureserver
akka
配置中心diamond
zookeeper
多类型数据库支持的服务层设计(drds, rds, hbase, mongodb等)
vipserver
相关算法
一致性hash
针对多数据库的dataloader组件
基于requirejs的图形组件的形成
apache zeppelin可视化框架
pentaho
nodejs相关工具对可视化插件的帮助(gulp, grunt, less等)
实时终于实现
<a href="http://www.goingio.com/2016/01/07/%e5%ae%9e%e6%97%b6%e6%8a%80%e6%9c%af%e5%9c%a8%e5%90%af%e6%98%8e%e6%98%9f%e7%9a%84%e5%ba%94%e7%94%a8-%e6%a6%82%e8%a7%88/">实时架构</a>
日志的实时接入
tt, flume等
日志的实时处理
strom, spark-streaming,基于storm的galaxy(即将脱离底层计算框架 )
实时服务
netty-socket
基于广播的socket服务
实时展现
socketio
websocket
实时下的渲染技术
场景
实时活跃用户展现
实时热力图
十一大屏
app崩溃信息实时统计分析系统
基于实时框架的服务性能监控系统
sla性能指标:?平均响应时长, 长尾占比, 返回值非200占比, 近一周内平均响应时长
从启明星到数据秀
数据秀
图像相关
空间索引方式
网状索引: geohash等
树状索引: r树,b树,红黑树,四叉树等
相关工具
mongodb对空间索引的支持
postgis
大数据挖掘与机器学习
回归分类算法
逻辑回归
线性svm
随机森林
梯度渐进决策树(回归)和地图渐进决策树(分类)
朴素贝叶斯
k近邻
线性回归
预测类算法
模型预测
模型评估: 混淆矩阵和roc曲线
回归模型评估
统计分析算法
基本统计信息
皮尔森系数
数据转换算法
随机采用
切分表
水平拼接表
垂直拼接表
深度学习算法
cnn特征训练
cnn特征抽取
cnn类目预测
图像缩放
自然语言处理算法
分词
词频统计
计算词tf-idf值
生成文档对应的主题
word2vec
图算法
kcore算法
单源最短路径sssp
pagerank算法
标签传播聚类labelpropagationclustering
标签传播分类labelpropagetionclassification
图聚类评价指标modularity
节点聚类系数nodedensity
边聚类系数edgedensity
最大联通子徒
计算三角形
聚类算法
k均值聚类 kmeans
推荐算法
协同过滤
成果
家和公司
活跃区域
导航轨迹
出行偏好
个人主页
人口迁徙
反爬虫
转自个人博客goingio技术平台(http://www.goingio.com)