Spark的python克隆

http://blog.csdn.net/pipisorry/article/details/43235263

Introduction

DPark是豆瓣开发的基于Mesos的开源分布式计算框架,是spark的python版克隆,Davids的作品,Beandb作者。是豆瓣刚开源的集群计算框架,类似于MapReduce,但是比其更灵活,可以用Python非常方便地进行分布式计算,并且提供了更多的功能以便更好的进行迭代式计算。DPark的计算模型是基于两个中心思想的:对分布式数据集的并行计算以及一些有限的可以在计算过程中、从不同机器访问的共享变量类型。DPark具有的一个很重要的特性:分布式的数据集可以在多个不同的并行循环当中被重复利用。这个特性将其与其他数据流形式的框架例如Hadoop和Dryad区分开来。

{logo是一条亚马逊河流域的地包天食人鱼,成群的食人鱼能够在一分钟内吃光一头牛,充分体现了划分简单任务群体协作的高效与世界的残酷}

官方中文wiki: https://github.com/jackfengji/test_pro/wiki

google group:https://groups.google.com/forum/#!forum/dpark-users

支持迭代计算的MapReduce框架PDF:http://velocity.oreilly.com.cn/2011/ppts/dpark.pdf

项目地址:https://github.com/douban/dpark/

与Spark的区别

Spark中使用一个线程运行一个任务,但是DPark受python中GIL的影响,选择使用一个进程来运行一个任务。Spark支持Hadoop的文件系统接口,Dpark只支持posix文件接口。

由于Python和Scala的区别和特性,他们之间有一些不同:

  1. 两者之间最重要的区别就是线程和进程的区别。在Spark中使用的是一个线程来运行一个任务,而DPark是用的进程。原因如下:在Python当中,由于GIL的存在,即使在多核机器上使用多个线程,这些线程之间也没有办法真正的实现并发执行,在现在的集群计算中,机器大多是多核的,Master会将一个任务分配到一个计算节点的一个CPU中运行,以充分利用每一台计算节点,但是由于GIL的存在,如果我们使用线程来运行每一个任务,那么会导致同一个计算节点上至多只有一个线程能够被运行,大大降低了计算的速度,所以我们不得不采用进程来运行每一个任务。而这个就导致了cache之后在同一个计算节点的各个任务之间共享内存变得相对复杂,并会带来一些额外的开销,我们在努力使得这一开销尽量降低。
  2. 支持的文件系统不同。Spark使用了Hadoop框架中提供的关于文件系统的接口,所以只要Hadoop支持的文件系统和文件格式,Spark都能支持。而DPark无法直接使用Hadoop的代码和接口,所以只能使用Posix文件系统,或者为某种文件系统参照textFile实现特定的接口。目前DPark支持所有能以FUSE或者类似方式访问的文件系统,包括MFS、NFS等类似系统,HDFS有FUSE接口可以使用。DPark特别针对MFS文件系统实现了一种RDD,它可以绕过FUSE,得到文件的分布信息,方便进行IO本地优化。

from:http://blog.csdn.net/pipisorry/article/details/43235263

ref:DPark安装及相关资料整理

Beyond MapReduce:图计算框架概览

Dpark

时间: 2024-08-14 22:47:58

Spark的python克隆的相关文章

地铁译:Spark for python developers ---Spark处理后的数据可视化

spark for python developer 一书,说实在的,质量一般,但勉强可以作为python 工程师的入门资料,至此,这一时段的地铁译结束了,开始新的阅读旅程-- 对于 Python 的图形绘制和可视化, 有大量的工具和库,和我们最相关并且有趣的是:? ? Matplotlib 是Python 绘图库的鼻祖. Matplotlib 最初7由 John Hunter 创作, 他是开源软件的支持者,建立的 Matplotlib 是学术界和数据科学界最流行的绘图库之一. Matplotl

Spark的Python和Scala shell介绍(翻译自Learning.Spark.Lightning-Fast.Big.Data.Analysis)

Spark提供了交互式shell,交互式shell让我们能够点对点(原文:ad hoc)数据分析.如果你已经使用过R,Python,或者Scala中的shell,或者操作系统shell(例如bash),又或者Windows的命令提示符界面,你将会对Spark的shell感到熟悉. 但实际上Spark shell与其它大部分shell都不一样,其它大部分shell让你通过单个机器上的磁盘或者内存操作数据,Spark shell让你可以操作分布在很多机器上的磁盘或者内存里的数据,而Spark负责在集

【转载】Getting Started with Spark (in Python)

Getting Started with Spark (in Python) Benjamin Bengfort Hadoop is the standard tool for distributed computing across really large data sets and is the reason why you see "Big Data" on advertisements as you walk through the airport. It has becom

地铁译:Spark for python developers --- 搭建Spark虚拟环境1

一个多月的地铁阅读时光,阅读<Spark for python developers>电子书,不动笔墨不看书,随手在evernote中做了一下翻译,多年不习英语,自娱自乐.周末整理了一下,发现再多做一点就可基本成文了,于是开始这个地铁译系列. 本章中,我们将为开发搭建一个独立的虚拟环境,通过Spark和Anaconda提供的PyData 库为该环境补充能力. 这些库包括Pandas,Scikit-Learn, Blaze, Matplotlib, Seaborn, 和 Bokeh. 我们的操作

地铁译:Spark for python developers ---Spark与数据的机器学习

机器学习可以从数据中得到有用的见解. 目标是纵观Spark MLlib,采用合适的算法从数据集中生成见解.对于 Twitter的数据集, 采用非监督集群算法来区分与Apache?Spark相关的tweets . 初始输入是混合在一起的tweets. 首先提取相关特性, 然后在数据集中使用机器学习算法 , 最后评估结果和性能. ?本章重点如下: ???了解 Spark MLlib 模块及其算法,还有典型的机器学习流程 . ???? 预处理 所采集的Twitter 数据集提取相关特性, 应用非监督集

地铁译:Spark for python developers --- 搭建Spark虚拟环境3

在VirtualBox 上建Ubantu虚机,安装Anaconda,Java 8,Spark,IPython Notebook,以及和Hello world 齐名的wordcount 例子程序. 搭建Spark 环境 本节我们学习搭建 Spark环境: 在Ubuntu 14.04的虚拟机上创建隔离的开发环境,可以不影响任何现存的系统 安装 Spark 1.3.0 及其依赖. 安装Anaconda Python 2.7 环境包含了所需的库 例如Pandas, Scikit-Learn, Blaze

Spark入门(Python)

Hadoop是对大数据集进行分布式计算的标准工具,这也是为什么当你穿过机场时能看到”大数据(Big Data)”广告的原因.它已经成为大数据的操作系统,提供了包括工具和技巧在内的丰富生态系统,允许使用相对便宜的商业硬件集群进行超级计算机级别的计算.2003和2004年,两个来自Google的观点使Hadoop成为可能:一个分布式存储框架(Google文件系统),在Hadoop中被实现为HDFS:一个分布式计算框架(MapReduce). 这两个观点成为过去十年规模分析(scaling analy

地铁译:Spark for python developers ---构建Spark批处理和流处理应用前的数据准备

使用PySpark和PyData相关库构建应用来分析社交网络中含有Spark的交互信息. 我们从GitHub收集有关Apache Spark的信息, 在Twitter上检查相关的tweets, 使用 Meetup从更广泛的开源社区得到更多Spark 相关感受. ?本章中, 我们将概览各种信息和数据源,理解他们的结构,从批处理到流处理介绍数据处理流水线,要点如下: ?+ 从批处理到流处理介绍数据处理管道, 有效的描述准备构建的应用架构. + 获取各种数据源 (GitHub, Twitter, 和M

地铁译:Spark for python developers ---Spark的数据戏法

聚焦在 Twitter 上关于Apache Spark的数据, 这些是准备用于机器学习和流式处理应用的数据. 重点是如何通过分布式网络交换代码和数据,获得 串行化, 持久化 , 调度和缓存的实战经验 . 认真使用 Spark SQL, 交互性探索结构化和半结构化数据. Spark SQL 的基础数据结构是?Spark dataframe, Spark dataframe 受到了 Python Pandas?dataframe 和R dataframe 的启发. 这是一个强大的数据结构, 有R 或