`
wbj0110
  • 浏览: 1602689 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

迭代计算的一些开源框架

阅读更多

迭代计算是一种通过多次循环得出结果的计算方式,一般需要将上一次计算的结果代入到下一步的计算中去。当计算数据和计算规模都比较小时,可以在单机上实现计算过程;但是当数据集变大或者计算复杂度上升时,在单机上就可能无法完成计算了。在互联网企业中,各种数据挖掘,信息检索等计算用例,由于抽取的数据集较大,往往都是进行分布式的迭代计算。
   MapReduce框架能够很好的处理大规模的数据计算,但是在实现需要迭代类算法时的效率比较低。一是由于为了提高可靠性,在Map和Reduce过程中都有写磁盘的过程,计算结果并不是直接在计算子过程之间传递;对于迭代类的计算,这种模式会导致在循环计算中反复I/O;二是Map和Reduce的串行结构还不能直接适用于循环或者链式的计算。尽管如此,Map-Reduce的计算思想对当前迭代计算框架的发展有很大的影响,许多框架或者基于MapReduce进行修改,或者借鉴了其计算思想进行设计。
   下面是一些已有的迭代计算框架:

  • twister (http://www.iterativemapreduce.org):这是一个java写的开源框架,使用Map-Reduce这种模式,上一轮reduce的结果会直接传送到下一轮的map,用户可自定义迭代结束的条件。但是它不能对大数据集进行自动切分,不支持HDFS,而且把所有数据都扔到内存里。在2011年3月发布完0.90后就没下文了,作者Jaliya Ekanayake等也离开实验室,不知所踪......
  • haloop (https://code.google.com/p/haloop/):这是基于Hadoop进行扩展的迭代式计算框架,它提供了一套新的API用于程序开发,使用的编程语言是Java。但是相关社区极不活跃,也不知道下一步的计划.....
  • Spark(http://www.spark-project.org):这是当前较为活跃的一个开源框架,主要目的是用于处理大数据集上的迭代式算法(机器学习)和交互式查询(数据挖掘的一些工具)。它使用scala开发,使得编程代码异常简洁,但最近也发布是了Java API接口;它使用Mesos/YARN作为底层的调度框架,并且和hadoop和Ec2紧密集成,可以直接读写hdfs或S3的文件进行计算。最近发布了0.6.0版本,是一个值得关注的项目。
  • DPark(https://github.com/douban/dpark):这是Spark的Python克隆,由豆瓣的牛人开发,在豆瓣内部有使用。
  • 此外还有一些图计算框架,如Apache Hama(http://hama.apache.org/)和Giraph( http://incubator.apache.org/giraph/):基本上是参考google pregel的开源实现。


  总的来说,当前这些迭代计算的框架还是处于发展阶段,远不如MapReduce和Hadoop生态区成熟。

分享到:
评论

相关推荐

    Hadoop迭代式计算框架Guagua.zip

    Guagua目前主要支持的是同步的Master-Workers结构的迭代式计算框架,今后我们希望能够支持异步方式的迭代计算框架,2012年Google MapReduce之父Jeff Dean发表了一篇论文,上面提到了对神经网络深度模型的支持,文章...

    迭代学习控制开源代码

    在本开源代码中,你将找到一个实现迭代学习控制的框架,这对于研究者和工程师来说是一个宝贵的资源,可以用于学习、理解和实践ILC算法。 ILC的基本思想是通过多次迭代来优化系统的输出,每次迭代都会利用前一次的...

    计算机视觉开源软件发展综述.docx

    1.1 促进技术创新:开源软件鼓励社区参与,开发者可以共享代码、交流想法,从而加速技术的迭代和创新。 1.2 提供研究基础:许多开源库提供了预训练模型和数据集,为研究者提供了快速验证新算法的基础,减少了重复...

    基于开源框架的推荐搜索BI系统

    标题中提到的“基于开源框架的推荐搜索BI系统”指的是利用开放源代码的软件框架来构建一个能够提供个性化推荐和搜索功能的商业智能系统。商业智能(BI)系统是企业用于分析业务数据,以支持决策制定的解决方案,其...

    Python_一个用于即时学习的开源框架.zip

    标题中的"Python_一个用于即时学习的开源框架"暗示了我们将探讨Python在快速学习和开发过程中的作用,以及它支持的开源框架。 Python的开源特性意味着它的源代码对所有人开放,允许社区进行改进、扩展和共享。这种...

    Qiskit Metal是一个开源框架,供工程师和科学家轻松设计超导量子器件

    Qiskit Metal是一个专为超导量子器件设计而生的开源框架,旨在简化工程师和科学家在量子计算领域的硬件开发过程。这个强大的工具集基于电子设计自动化(EDA)的理念,为量子计算机的物理实现提供了全面的支持。 在...

    RTSP Live555开源框架源码阅读笔记

    ### RTSP Live555开源框架源码阅读笔记 #### 概述 Live555是一个广泛使用的开源项目,主要用于实现实时流协议(RTSP)。该项目支持多种媒体格式和编码方式,如H.264、MPEG-4等,并提供了丰富的API供开发者进行二次...

    JAVA并行计算的一些资料 论文

    而Spark则支持内存计算,提供更高效的迭代计算。 9. **GPU并行计算**:虽然Java本身不直接支持GPU编程,但通过第三方库如Jcuda,Java开发者也可以利用GPU进行并行计算,提高计算密集型任务的性能。 10. **并行算法...

    人工智能技术的免费开源SAAS框架.zip

    标题 "人工智能技术的免费开源SAAS框架.zip" 暗示了这个压缩包可能包含一个用于构建基于人工智能的软件即服务(SAAS)平台的开源框架。SAAS框架允许开发者快速构建和部署云端应用,而人工智能(AI)的集成则为这些...

    基于移动互联网大数据的异构实时计算框架分析.pdf

    用户可以将Spark与Hadoop的部分组件相结合使用,提高计算性能,适用于交互查询和迭代计算等大数据场景。 各种技术有其各自的优势和局限性。Hadoop适合对实时响应要求不高的大批量数据处理;Storm擅长实时流式数据...

    物联网大数据处理中实时流计算系统的实践.pdf

    5. 大数据实时计算在物联网中的实践:在大数据应用过程中,根据不同应用模式其计算模式也有相应的变化,例如批处理计算、迭代计算、流式计算等。 6. UCBerkeleyAMPLab 的 Spark 系统:Spark 系统将所有特征的数据及...

    基于分布式计算框架的大数据机器学习.pdf

    Spark是一个开源的分布式计算框架,它在2010年由伯克利大学的AMPLab实验室发起,并于2014年成为Apache的顶级项目。Spark在大数据处理方面展现了出色的性能,例如在2014年11月的DaytonaGraySort100TB排序竞赛中,...

    开源项目-montanaflynn-toy-spelling-corrector.zip

    例如,Python 2中的print语句在Python 3中变成了函数,迭代器和生成器的使用也需要相应调整。 此外,为了保持项目的可持续发展,开发者可能会增加单元测试以确保代码质量,编写文档来解释如何使用这个库,甚至可能...

    GPS卫星位置计算,gps卫星位置计算的步骤,C,C++

    在C或C++中实现GPS卫星位置计算涉及多个步骤和概念,包括信号传播时间、伪距计算、星座几何、星历数据以及牛顿迭代法。以下是关于这一主题的详细解释: 1. **信号传播时间与伪距**: - GPS接收器接收到卫星发射的...

    华工分布式计算实验

    Spark则提供了更高效的内存计算,适合实时和迭代计算。 8. **分布式数据库和NoSQL**:如MongoDB、Cassandra等,用于处理海量非结构化数据。 9. **云计算平台**:如Amazon AWS、Microsoft Azure或Google Cloud ...

    Experiment-of-a-Comparison-with-Iterative-MR-frameworks:我们为在迭代 MapReduce 框架上运行迭代算法而实现的示例代码

    在IT领域,MapReduce是一种分布式计算模型,常用于大数据处理,由Google提出并广泛应用于Hadoop等开源框架中。此项目“Experiment-of-a-Comparison-with-Iterative-MR-frameworks”旨在通过实证方法对比不同迭代...

    Spark一个高效的分布式计算系统

    Spark是一个由UC Berkeley AMP实验室开发并开源的分布式计算框架,其设计目标是提供高效、通用的并行计算能力,尤其适合大数据处理中的迭代计算任务。Spark借鉴了Hadoop MapReduce的思想,但在性能和灵活性上进行了...

    Hadoop与Spark的对比和关系.pdf

    Apache Hadoop和Apache Spark是两个在大数据处理领域中至关重要的开源框架,它们都致力于解决大规模数据处理的问题,但各自有着不同的设计哲学和应用场景。Hadoop最初是为批处理任务而设计,而Spark则是在Hadoop的...

Global site tag (gtag.js) - Google Analytics