数学之路-分布式计算-disco(1)

当前, 在大数据领域, Java并不是唯一可选语言,虽然Hadoop分布式管理平台需要使用Java,但是这种局面有可能被DARPA改变。IT经理网在“大数据成为美国军队的’新型武器’”一文中,报道过美国国防部下属的“国防高级研究项目署”(DARPA)通过XDATA项目进行大数据投资的情况。 最近, DARPA通过XDATA项目的基金投资ContinuumAnalytics,帮助其开发Python在大数据领域的数据处理和可视化能力。 XDATA这个计划的目的, 就是研究在对非完美及非完整数据集,进行海量数据处理和数据可视化的算法。 XDATA项目基金总共有1亿美元, 这次DARPA对Continuum Analytics的投资共计3百万美元。

Python是一个非常流行的编程语言, 无论在网络程序员中(比如Google的相当多的产品就是用Python编写的,Python也是豆瓣的主要开发语言), 还是在科学计算领域, Python都有很广泛的应用。而Continuum Analytics的目的, 就是要进行下一代数据分析工具的开发, 使得Python在数据分析领域的应用, 如同在科学, 工程和规模化计算方面那样强大。

ContinuumAnalytics的旗舰产品Anaconda是一个基于Disco平台的数据管理,分析和可视化的工具。而 Disco是一个最初由诺基亚开发的,基于Python的分布式数据管理平台,可以作为以Java为基础的Hadoop平台的替代。

Anaconda支持流行的Python科学计算库如NumPy, SciPy和Pandas等。此外, Continuum Analytics还推出了一个名为Wakari的产品,这是一个基于浏览器的数据分析环境。 Continuum Analytics把它描述成为“科学, 工程和商业数据分析中的WordPress, Github和Youtube。”

而DARPA好像对Continuum Analytics参与的几个开源项目表现出了特别的兴趣。 这些项目包括 Blaze (使用Python代码在分布式系统上进行数据分析的技术), Bokeh(一个为大数据和多维度数据设计的基于HTML5的数据可视化库),以及Numba(Python编译器, 可以将Python代码编译成机器码从而加快计算速度)。

从DARPA的角度, XDATA项目的目的是研究基于海量数据的高性能计算和可视化。 因此, 像ContinuumAnalytics这样具备这样核心技术的公司, 就理所应当的成为投资目标。 而鉴于Python在开源社区,科学和工程领域的广泛应用。通过投资Continuum Analytics, 也可以极大地扩大大数据分析的使用人群。同时也可以加强DARPA和开发者社区的进一步紧密合作来推动大数据分析的发展。

本博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/


Disco是一个轻量级的、开源的基于mapreduce模型计算的框架,Disco强大且易于使用,这都要归功于python,Disco分发且复制数据,可高效安排作业。Disco甚至拥有能对数以亿计的数据点进行索引以及实时查询的工具。Disco于2008年在Nokia研究中心诞生,解决了在大量数据处理方面的挑战。

Disco支持大数据集的并行计算,在不可靠的计算机集群中,其模式类似于谷歌创造的计算集群,Disco是一个完美的分析和处理大数据的工具,无需考虑因为分布式带来的技术困难,比如通信协议、负载均衡、锁、作业规划、故障容忍。Disco可用于多种数据挖掘任务:如大规模分析,建立概率模型,全文索引网页等。

Disco的核心是用Erlang编写的,Erlang是一种为构建高容错性分布式应用程序而设计的函数语言。Disco通常使用Python作为常用编程语言,这样可以提高开发效率,用更简洁的语法完成更多复杂算法。 

下面代码完成在一个海量文本中计算词频的任务。

from disco.core import Job, result_iterator

def map(line, params):
    for word in line.split():
        yield word, 1

def reduce(iter, params):
    from disco.util import kvgroup
    for word, counts in kvgroup(sorted(iter)):
        yield word, sum(counts)

if __name__ == '__main__':
    job = Job().run(input=["http://discoproject.org/media/text/chekhov.txt"],
                    map=map,
                    reduce=reduce)
    for word, count in result_iterator(job.wait(show=True)):
        print(word, count)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值