张小龙谈“大数据五种开源处理技术”
概述
现在市场上有超过25万个开源技术出现了。如何选择?让我们一起看下5种激动人心的大数据技术。
Storm 和Kafka是未来数据流处理的主要方式,它们已经在一些大公司中使用了,包括 Groupon,阿里巴巴和The Weather Channel等。
Storm,诞生于Twitter,是一个分布式实时计算系统。Storm 设计用于处理实时计算,Hadoop主要用于处理批处理运算。
kafka是由LinkedIn研发的一款消息系统,作为一个数据处理的管道基础部分存在于系统中。当你一起使用它们,你就能实时地和线性递增的获取数据。
1、Storm\Kafka
使用Storm和Kafka,使得数据流处理线性的,确保每条消息获取都是实时的,可靠的。前后布置的Storm和Kafka能每秒流畅的处理10000条数据。像Storm和Kafka这样的数据流处理方案使得很多企业引起关注并想达到优秀的ETL(抽取转换装载)的数据集成方案。Storm 和 Kafka 也很擅长内存分析和实时计算支持。企业使用批量处理的Hadoop方案无法也难对实现实时的业务需求。
在企业的大数据解决方案中实时数据流处理是必须的,因为它很优美的处理了"3v"-volume,velocity 和 variety (容量,速率和多样性)。
Drill和Dremel 实现了快速低负载的大规模,即时查询数据搜索。它们提供了秒级搜索P级别数据的可能,来应对即席查询和预测,及提供强大的虚拟化支持。
Drill和Dremel提供强大的业务处理能力,不仅仅只是为数据工程师提供。业务端的大家都将喜欢Drill和Dremel。Drill 是Google的Dremel的开源版本。Dremel是Google提供的支持大数据查询的技术。
Hadoop生态圈使得MapReduce作为一个很亲切有利的工具应用于广告分析。从Sawzall到Pig到Hive,很多接口层应用的建立使得Hadoop更为友好,更接近业务,但是,像SQL体系,这些抽象层忽略一个重要的事实-MapReduce(或Hadoop)是为了系统化数据处理流程而存在的。
在堆对比的工作流基础的方法论中,很多业务驱动的BI和分析查询都是很基本的和临时交互的,低延时分析。一些数据科学家早已经推测Drill和Dremel将优于Hadoop。在Infochimps我们喜欢使用Elasticsearch全文索引引擎来实现数据库的数据搜索,但是真的在大数据处理中我们认为Drill将成为主流。
2、R
R是开源的强大的统计编程语言。自1997年以来,超过200万的统计分析师使用R。这是一门诞生自贝尔实验室的在统计计算领域的现代版的S语言并迅速地成为了新的标准的统计语言。R使得复杂的数据科学变得更廉价。R是SAS和SPASS的重要的领头者,并作为最优秀的统计师的重要工具。
因为它有一个非凡强大的社区在支持着,你可以找到所有的R的类库,创建虚拟的各类型的科学数据而不用新写代码。R之所以令人兴奋是因为维护他的人和新的每天的创造。R社区是大数据领域令人兴奋的地方之一。R在大数据领域是一个超棒的不会过时的技术。
在最近的几个月里,几千个新特性被日益公开的知识基础为主的分析类型的分析师们介绍.而且,R和Hadoop协同的很好,作为一个大数据的处理的部分已经被证明了。
3、Jualia
Julia ,是一个有趣的R的替代者,因为它不喜欢R的死慢死慢的解释器。Julia的社区虽然不怎么强大现在,但是如果你不是立即使用它的话,还是可以等等的。Gremlin 和 Giraph 帮助增强图形分析,并在图数据库像Neo4j和InfiniteGraph中被使用,和与Hadoop协同工作的Giraph中被使用。
Golden Orb是另一个高层面的流处理的图基础的项目的例子。可以看看。图数据库是富有魅力的边缘化的数据库。它们和关系型数据库相比,有着很多有趣的不同点,这个是当你在开始的时候总是想用图理论而不是关系型理论。
另一个类似的图基础的理论是Google的Pregel,相比来说Gremlin和Giraph是其的开源替代。实际上,这些都是Google技术的山寨实现的例子。图在计算网络建模和社会化网络方面发挥着重要作用,能够连接任意的数据。另外一个经常的应用是映射和地理信息计算。从A到B的地点,计算最短的距离。
图在生物计算和物理计算领域也有广泛的应用,例如,他们能绘制不寻常的分子结构。海量的图,图数据库和分析语言和框架都是一种现实世界上实现大数据中的一部分。图基础的理论是一个杀手级的应用,为什么这么说?任何一个解决大型网络节点问题,都是通过节点和节点之间的路径来处理的。很多富有创造力的科学家和工程师们,都很明白的用正确的工具来解决对应的问题。
4、SAP hANA
SAP Hana 是一个全内存的分析平台,它包含了一个内存数据库和一些相关的工具软件用来创建分析流程和规范正确的格式来进行数据的输入输出。
Hana 假设其他的程序处理时候还不够快的解决遇到的问题,例如,金融建模和决策支持,网站个性化和欺骗检测等等。Hana最大的缺点是"全内存"这意味着访问软状态的内存,这个是很明确的有点,但是这个也是相比磁盘存储来说很昂贵的部分。据组织者说,不用担心操作成本,Hana是快速的低延迟的大数据处理工具。
5、D3
D3是一个javascript面向文档的可视化的类库。它强大的创新性的让我们能直接看到信息和让我们进行正常的交互。它的作者是Michael Bostock一个纽约时报的图形界面设计师。例如,你可以使用D3来从任意数量的数组中创建HTMl表格。你能使用任意的数据来创建交互进度条等。使用D3,程序员能之间创建界面,组织所有的各种类型的数据。
开始正式的使用Hadoop已经有近一年的时间的了,这期间从百度出来,到初见在到现在的BitWare,在不同的公司,用不同的技术解决问题。但是本质上遇到的问题总是那么几个,当然现在很多公司也开始尝鲜的使用Hadoop的了。这个是大环境是如此,可以理解。
Storm和Kafka 从11年起,就开始关注了,Storm在阿里也有部分二线应用,但是整体而言,刚刚满一岁的Storm在nathanmarz大侠的打磨下越来越稳定了,并有部分线上的应用了。所以对这个技术,总体而言,我个人还是很看好的,因为现在使用hadoop无法实现实时的处理,使用HBase来为主要的数据库来使用了,暂时还是能解决.