在数据分析方面,影响深远的变化正在酝酿之中,而开源工具在引领许多变化。当然,你可能已熟悉这个领域的一些明星开源项目,比如Hadoop和Apache Spark,不过现在出现了强烈的要求,需要全面完善数据分析生态系统的新工具。值得注意的是,许多这些工具是为了处理流数据而定制的。
物联网带来了众多传感器及其他设备,它们在生成源源不断的数据流,而物联网只是推动市场需要新型分析工具的重大趋势之一。需要流数据分析工具来改善药物发现,美国宇航局和搜寻外星文明研究所(SETI)甚至在开展合作,分析数TB复杂的外太空无线电信号流。
虽然Apache Spark在数据分析领域抢走了许多风头,那是由于IBM及其他公司在这方面投入了数十亿美元的研发资金,但几个藉藉无名的开源项目也在迅速崛起。下面是值得探讨的三种新兴的数据分析工具。
1.Grappa
大大小小的企业组织正在致力于研究从数据流提取宝贵信息的新方法,其中许多在处理集群上生成的数据,而且在日益处理商用硬件上生成的数据。这样一来,成本合理的、以数据为中心的方法受到了重视,这种方法可以改善MapReduce、甚至Spark等工具的性能和功能。Grappa开源项目这时候闪亮登场了,它可以在大众化集群上扩展数据密集型应用程序,并且提供了一种新型的抽象机制,比经典的分布式共享内存(DSM)系统更胜一筹。
你可以在此(http://grappa.io)获得Grappa的源代码,并找到关于它的更多信息。Grappa的起源是这样的:一群在克雷(Cray)系统上运行大数据任务方面有着丰富经验的工程师想,是不是可以与克雷系统在现成商用硬件上能够实现的分析功能一较高下。
正如开发人员特别指出:“Grappa在足够高级的层面提供了抽象,因而包括数据密集型平台所常见的许多性能优化。然而,其相对低级的接口又提供了一种方便的抽象,以便在此基础上构建数据密集型框架。(简化版)MapReduce、GraphLab和关系查询引擎的原型实现就建立在Grappa的基础上,它们的性能比原有系统更胜一筹。”
采用BSD许可证的Grappa在GitHub上可以免费获取。如果你有兴趣看看Grappa是怎么实际运行的,可以在应用程序的README文件中遵照通俗易懂的快速启动说明,构建Grappa应用程序,并在集群上运行。想了解如何编写自己的Grappa应用程序,不妨阅读这个教程。
2.Apache Drill
Apache Drill项目在大数据领域带来了重大的影响,以至于MapR等公司甚至把它纳入到其Hadoop发行版中。它是Apache的一个顶级项目,与Apache Spark一同应用于许多流数据场景。
比如说,在今年1月份召开的纽约Apache Drill大会上,MapR的系统工程师展示了Apache Spark和Drill如何可以协同用于涉及数据包捕获和近实时查询及搜索的一种使用场合下。
Drill在流数据应用程序中之所以如此出名,是因为它是一种分布式、无模式(schema-free)的SQL引擎。开发运维和IT人员可以使用Drill,以交互方式探索Hadoop及其他NoSQL数据库(比如HBase和MongoDB)中的数据。不需要明确定义和维护模式,因为Drill可以自动充分利用嵌入到数据中的结构。它能够在操作员之间的内存中流式传输数据,并且尽量减少使用完成查询所需的磁盘。
3.Apache Kafka
Apache Kafka项目已凭借实时数据跟踪功能俨然成为一颗明星。它提供了处理实时数据的功能,具有统一、高吞吐量、低延迟等优点。Confluent及其他组织还开发了自定义工具,以便Kafka与数据流结合使用。
Apache Kafka最初由LinkedIn开发,后来在2011年年初开放了源代码。它是一种经过加固和测试的工具,许多企业组织要求员工拥有Kafka方面的知识。使用Kafka的知名公司包括思科、网飞、贝宝、优步和Spotify。
LinkedIn当初开发Kafka的那些工程师还成立了Confluent,它专注于Kafka。Confluent大学为Kafka开发人员以及操作员/管理员提供培训课程。现场课程和公开课程都有提供。
你是否对比较藉藉无名、但迅速崛起的开源数据分析项目有兴趣?如果是这样,你可以在我最近撰写的关于这个话题的一篇文章中找到更多此类项目。
原文标题:3 Emerging Open Source Data Analytics Tools Beyond Apache Spark,作者:SAM DEAN