探访美式微博Twitter的大数据技术架构

Twitter的大数据架构也是分为基于Hadoop的批处理和基于Storm的实时流计算等主要类型,主要基于开源项目中进行开发和发展。

Twitter要上市了,再一次让全球瞩目,正是它所创造的twitte让互联网进入了微创新的时代。虽然它没有进入中国,但受其启发的新浪微博和腾讯微博在中国互联网上也成为一道亮丽的风景。Twitter在全球拥有巨大的用户群,海量的社交信息流,支撑其运转的大数据技术架构也颇受人关注。

Twitter的大数据架构也是分为基于Hadoop的批处理和基于Storm的实时流计算等主要类型,主要基于开源项目中进行开发和发展。Twitter收集数据采用的是Facebook开源的日志工具Scribe,批处理地存储和分析数据采用Hadoop+MapReduce,在大数据上的快速分析采用Pig。Pig是基于Hadoop的并行计算高级编程语言,它提供一种类SQL的数据分析高级文本语言,称为Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig支持的常用数据分析主要有分组、过滤、合并等。

Storm是Twitter的开源流计算平台,Storm通过简单的API使开发者可以可靠地处理无界持续的流数据,进行实时计算,开发语言为Clojure和Java。Storm的应用场景很多,如实时分析、在线机器学习、持续计算等。

Twitter的存储有很多工具,体现了其在不同发展阶段的作用,也试用于不同的应用场景。NOSQL数据库至少包含了HBase、Cassandra和FlockDB等。HBase被用于批处理的分析和数据集生成,Cassandra被用于在线系统,支持动态读写,FlockDB则用于实时分布的社交图的存储。

在大数据2.0的时代,Twitter的大数据技术架构也在不断吸收更多开源技术的精华,兼容并蓄,不断进化。例如,Mesos被twitter引进用于分布式大数据技术架构的操作系统,能够对Hadoop等计算存储资源进行合理调度。

Twitter的大数据技术架构

再如,刚刚开源的Summingbird,实现了批处理和实时流计算在一个平台架构下的整合,开发者可以使用非常接近原生的Scala或者Java 在Summingbird上执行MapReduce作业,既可以使用Summingbird做“批处理”,也可以使用它做“实时处理”,同时,还可以使用两种模式的混合。做到写一次逻辑,一次性解决所有问题。Summingbird进一步的工作包括对Akka、Spark和Tez等平台的支持,这有利于Twitter把更多平台和工具引入到自身的大数据技术架构体系中。

基于Twitter强大的大数据技术架构,它正在实现向大数据分析和服务商的转型,越来越多的基于Twitter的分析工具、应用APP和商业模式被挖掘出来,数据分析产业生态链逐步建立起来,其带来的想象空间非常巨大。我想,人们所期待的新浪微博的秘密的大数据技术架构项目也一定是朝着这个方向进行着努力。

作者:赵刚,北京赛智时代信息技术咨询有限公司 (CIOManage) 合伙人

链接:http://blog.sina.com.cn/s/blog_4aa50b4d0101jbx6.html

本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。

返回顶部