2016 QCon北京参会感想
感谢公司,蹭了一天6k8的高价会议。ppt下载
首先说一下整体感受吧。我主要盯着大数据平台架构这个session听。中间穿插着听了2个做知识图谱相关的和freewheel做噪声消除的。水平有限,他们深入讲一个项目的很多地方都听不懂,反而是美团讲整个数据分析平台的听得比较明白,可能是自己的水平有限,对于开源项目的具体细节还不了解,还停留在用的阶段。
另外今天很大的一个收获就是听了各个团队关于技术选型相关的讲解,发现技术选型首先是解决业务的痛点,其次是自己团队对于开源项目的技术掌控力(美团有两个kylin committer,京东的presto自己开了presto-jd分支,jstorm就是阿里内部的项目),比如阿里对于Jstorm完全掌控,导致他们很多管道或者相关的需求,即使在有flume的情况下还是选择了Jstorm。最后才是性能,性能满足使用条件即可。这一点是之前工作没有体会到的。之前技术调研和选型mentor都做了,自己只是按照选好的道路走就可以。
下面分session讲一下
《阿里巴巴实时计算平台 JStorm Turbo》
早上第一个主题是阿里的jstorm。Jstrom是阿里的一个基于storm的java实现,据说性能和稳定性都比storm要好。
阿里的非常多业务都在用jstorm,包括管道系统都不用flume而用Jstrom。主要也是因为阿里对于jstorm的掌握它深了。
资源调度方面jstorm追求两点
- 大型化、规模化 (jstoorm on yran)
- 轻量化 jstorm on docker
而稳定性方面speaker推荐大家生产环境使用双十一 双十二版本
- 全新监控系统(生命周期)
- 限流(twitter的heron论文,反压?下游命令堆积时,发消息给master,master确定是否开始反压)
- 资源隔离 (cgroup,share方式)
- 中央控制nimbus HA。
- 大规模部署,超过storm 400台限制(心跳发送到TM)
- ToPologyMaster
性能提升方面jstorm主要做了这么几点
- 重新定义数据结构:针对batch定义。将公共的数据抽出来放到公共区域,对string优化
- 多级batch机制:三层
- 增加线程池单独处理反序列化(string int double自己实现反序列化。最新版会有一个公共序列化进程
- jvm性能调优
- GC调优
- 去掉总发送线程和总接收线程
- 在spout内部读写分离
- 降低采样对性能的影响
- 优化复杂函数(分析高频函数,单独优化)
其中序列化反序列化是优化的大头
最后对于使用场景,1分钟内的speaker推荐使用storm,1到15分钟,推荐使用flink DataStream和spark Streaming,15分钟以上推荐flink DataSet、spark和MR/Tez.
《阿里双11系统管控调度架构与实践》
这个talk主要讲的是阿里的限流系统,和我预想的不太一样,于是听了个开头就走了。限流系统业界成熟的方法就是令牌桶,当然阿里做了很多的扩展。后来看ppt,感觉干货还不少,没听可惜了
《社会化数据的混合存储和高效处理》
明略的这个其实讲的是个知识图谱。他们的架构和我们类似,不过引入了titan Graph database并用spark做graph processing。
选用titan而没有用neo4j的主要原因是neo4j收费,并且titan和hadoop生态圈结合更好
不过他们使用titan也踩了很多坑:
- 边爆炸问题
- titan使用邻接表储存边点
- 同类变合并
- 原始信息用其他方式储存
- supernode
- 多点查询效率
- 基于tinkerPop
- TitanMultiVertexQuery接口
- 应用层优化
- 索引性能和灵活度
- 数据导入性能
- 并行导入
- 子图划分
- batch loading
- 优化底层参数
- 调优底层存储
我们现在的架构中的确对于图的处理差一些,之前小米也说他们使用graphX处理社会化数据,不知道我们把arq和sparql用起来以后能不能解决这个问题。
《广告平台中用户画像和标注噪声处理的实践》
freewheel主要处理的是一个缺失数据标注的问题,比如用户的性别数据缺失,需要标注。能拿到的就是一批数据的性别比例,目标是通过自己的学习,标注的性别和这个得到的比例类似。
《大数据和人工智能在互联网金融上的应用》
这个哥们就是把之前他知乎上的文章又讲了一遍,干货比较少,知识图谱使用例子比较多。不过其中有一页slides讲了底层存储。有两个主流,一个是图数据库(neo4j/titan/orientDB),另一个就是rdf(virtuoso,jena,sesmae)。其实rdf如何发挥图的优势和spark结合起来做图数据挖掘应该是一个很有意思的方向。我们后面要做的olap是将query转化为hql,这个解决的是query时的效率问题,对于图数据挖掘可能还差一些。
《美团大数据平台架构实践》
全天最佳!全是干货
先上架构图
数据接入
- db是通过canal导入mysql增量数据。
- 日志通过flume导入。
所有数据先进入kafka,再进入后端的系统(为什么要进kafka?有什么好处,是否只是为了支持多下游?)
离线计算平台
离线计算平台主要由这样几部分组成:
他的计算引擎层支持多种不同的工具,比如hive,kylin,presto等待
- kylin主要是将数据转化为数据立方,之后加速对源数据进行的OLAP操作。Apache Kylin的快速数据立方体算法——概述
- presto主要是为了做ad-hoc查询,他和hive相比优点是快,因为他的目标是交互式查询,缺点就是独占内存,并且内存不够会fail。Presto实现原理和美团的使用实践
- spark。Spark在美团的实践
- 另外,美团的bi重度依赖sql,所以他们做了很多sql模板化的事情。
hadoop
他们中间经历过一段时间的跨机房,所以对hdfs和yarn做了定制。主要是对于hdfs的data存储pipeline定制,让一个data存储不要在多个机房,yarn的conainer也是对不同机房做了不同的队列。
交互式开发
美团基于zeppelin(踩坑+用户认证)做了交互式开发平台
OLAP引擎的技术选型
这里和后面京东都讲了技术选型,感觉开启了新的思路。应届生嘛,之前没考虑过这方面的东西
- 选型一定要找自己技术相对熟悉,能够hold住的产品,而不能仅仅从性能考虑
- 产品稳定性、成熟度
- 团队对产品掌控力
- 对业务的支持性
《基于 ElasticStack 的数据探索与分析》
这个talk基本就是在讲我们公司的产品啥都能干,更像一个公司主页的产品推销而不是技术分享。应该去听旁边美团的对象存储系统的。不过es居然还能做数据分析,真是惊呆了
《Presto在京东云的应用实践》
首先也是讲了一下技术选型,一个是公司大趋势(老板和fb很熟- -),另一个就是技术上本来能hold,这也是speaker强调的一点,随着使用的深入,肯定要踩坑+个性化定制,甚至优化,所以技术能力一定要有。
之后讲了一些对于presto的定制,包括数据源的丰富,访问安全,udf定制等
本文采用创作共用保留署名-非商业-禁止演绎4.0国际许可证,欢迎转载,但转载请注明来自http://thousandhu.github.io,并保持转载后文章内容的完整。本人保留所有版权相关权利。
本文链接:http://thousandhu.github.io/2016/04/23/2016-QCon北京参会感想/