在大数据应用的开发中,除了基础的Hadoop或者R语言之外,还有很多优秀的开发工具,能使开发者如虎添翼。
“兵欲善其事,必先利其器”,无论你是从事大数据应用的开发,还是希望分析你的移动应用,这些工具都可以帮助你更快更好的发展。
1) BitDeli
BitDeli是一家刚刚成立的公司,他的产品就是可以让开发者利用Python脚本, 对应用进行分析。 Python脚本可以很简单, 也可以很复杂。一切可以由开发者来定制。 BitDeli的产品甚至包含了一些机器学习的模块。相比较庞大的Hadoop分析工具, BitDeli把自己比作是应用分析方面的RoR (Ruby on Rail)。
2) Continuity
Continuity的两个创始人是雅虎的前首席云架构师Todd Papaioannou和前Facebook的HiBase工程师Jonathan Gray。 他们的目的, 就是想使客户能够像雅虎和Facebook
利用大数据。 Continuity的产品App Fabric主要是把复杂的与Hadoop和HBase集群的工作作为一个抽象层, 提供各种大数据开发工具,来满足企业内部或外部数据需求。
3) Flurry
Flurry是个一站式的移动应用商店,它每年已经有100美元的营收了。 它不但帮助开发者在它的平台上开发,还可以帮助开发者通过运营数据, 对应用进行分析以改善应用。而且, Flurry平台还可以和广告网络相对接,帮助开发者更好的实现盈利。
4) Google Predictive API
在Google提供的众多开发工具中, Google Predictive API 是最酷的一个了。如果你有好的训练样本数据, 那么GooglePredictive API将会利用机器学习算法来为你的应用建立模型,并把这些模型整合到你的应用中去。 在Google给出的例程里,包括了反垃圾邮件, 推荐引擎,以及情绪分析等模型的搭建步骤和代码。
5) Infochimps
尽管Infochimps把自己定义为面向企业的IT平台, 他们大数据平台对开发者来说也非常有帮助。它的技术平台叫做Wukong(悟空), 用来进行大数据环境的配置和管理。从起一个Hadoop进程到用Ruby脚本来传递数据流。 Wukong都可以让开发者的工作变得更简单。此外, Infochimps的平台还包括了一个数据市场,以API或者下载方式提供各类数据。
6) Keen IO
Keen IO是个强大的移动应用分析工具。开发者只需要简单到一行代码, 就可以跟踪他们想要的关于他们应用的任何信息。开发者接下来只需要做一些Dashboard或者查询的工作就可以了。
7)Kontagent
Kontagent是一个移动,社交, 网站应用的分析平台。它基于Hadoop大数据平台而建。今年, Kontagent平台增添了新功能。它可以让用户直接采用Hive查询语言对数据进行任意查询和分析,而不像原来那样只能进行预定义的查询和分析
8) Mortar Data
Mortar Data是专为开发者打造的Hadoop开发平台,它用Pig和Python的组合替代了MapReduce以便开发者能简单地编写Hadoop管道(Pipeline)。 今年11月, 它推出了Mortar Data开源开发框架,利用开源社区来推动数据共享。 Mortar Data平台运行在亚马逊的云平台上。 支持亚马逊S3以及MangoDB。
9) Placed Analytics
利用脚本语言以及API, PlacedAnalytics能够提供针对移动和网络应用的详细用户行为分析。包括, 用户使用时间和地理位置信息。 这些可以帮助开发者的应用更好地吸引广告商, 也可以帮助开发者对自己的应用进行改善。
10) Precog
Precog提供的是一个基于开源查询语言Quirrel的交互式开发环境,名为Labcoat。可以帮助开发者进行应用分析的开发。这个IDE环境还提供了关于Quirrel的教程,以及其他一些复杂的函数。 用公司首席运营官Jeff Carr的话来说:“就算是一个非技术人员, 几个小时也能掌握基本功能。”
11) Spring For Apache Hadoop
尽管Hadoop是用Java写的,但是这并不意味着, 在Hadoop上编程或者使用Hadoop对Java程序员来说就很简单。因此, 在2012年初, SpringSource宣布推出了SpringFor Apache Hadoop项目。 把Spring开发框架和Hadoop结合起来。 这样也便于其他的Spring应用或者基于Java虚拟机的脚本, 更好地和Hadoop以及利用Hadoop的其他技术如Hive或者HBase进行整合。
12) StatMix
和BitDeli以及Keen IO一样,StatMix也希望能够使开发者用他们所熟知的语言来进行数据查询与分析。 因此, 出来提供预定义的查询之外, StatMix也提供API和代码库来让开发者定制化的查询。并可以把不同数据源的查询结果整合在一个定制的Dashboard里。
13) Spark
Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析。Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发开发,其核心部分的代码只有63个Scala文件,非常轻量级。 Spark 提供了与 Hadoop 相似的开源集群计算环境,但基于内存和迭代优化的设计,Spark 在某些工作负载表现更优秀。
在2014上半年,Spark开源生态系统得到了大幅增长,已成为大数据领域最活跃的开源项目之一,当下已活跃在Hortonworks、IBM、Cloudera、MapR和Pivotal等众多知名大数据公司。那么Spark究竟以什么吸引了如此多的关注,这里我们看向Dzone上的6个总结。
(1) 轻量级快速处理。着眼大数据处理,速度往往被置于第一位,我们经常寻找能尽快处理我们数据的工具。Spark允许Hadoop集群中的应用程序在内存中以100倍的速度运行,即使在磁盘上运行也能快10倍。Spark通过减少磁盘IO来达到性能提升,它们将中间处理数据全部放到了内存中。
Spark使用了RDD(Resilient Distributed Dataset)的理念,这允许它可以透明的内存中存储数据,只在需要时才持久化到磁盘。这种做法大大的减少了数据处理过程中磁盘的读写,大幅度的降低了所需时间。
(2) 易于使用,Spark支持多语言。Spark允许Java、Scala及Python,这允许开发者在自己熟悉的语言环境下进行工作。它自带了80多个高等级操作符,允许在shell中进行交互式查询。
(3) 支持复杂查询。在简单的“map”及“reduce”操作之外,Spark还支持SQL查询、流式查询及复杂查询,比如开箱即用的机器学习机图算法。同时,用户可以在同一个工作流中无缝的搭配这些能力。
(4) 实时的流处理。对比MapReduce只能处理离线数据,Spark支持实时的流计算。Spark依赖Spark Streaming对数据进行实时的处理,当然在YARN之后Hadoop也可以借助其他的工具进行流式计算。对于Spark Streaming,Cloudera的评价是:
· 简单:轻量级且具备功能强大的API,Sparks Streaming允许你快速开发流应用程序。
· 容错:不像其他的流解决方案,比如Storm,无需额外的代码和配置,Spark Streaming就可以做大量的恢复和交付工作。
· 集成:为流处理和批处理重用了同样的代码,甚至可以将流数据保存到历史数据中。
5. 可以与Hadoop和已存Hadoop数据整合。Spark可以独立的运行,除了可以运行在当下的YARN集群管理之外,它还可以读取已有的任何Hadoop数据。这是个非常大的优势,它可以运行在任何Hadoop数据源上,比如HBase、HDFS等。这个特性让用户可以轻易迁移已有Hadoop应用,如果合适的话。
6. 活跃和无限壮大的社区。Spark起源于2009年,当下已有超过50个机构250个工程师贡献过代码,和去年六月相比,代码行数几乎扩大三倍,这是个令人艳羡的增长。