tree -d -L 2
.
├── assembly//It creates a single tar.gz file that includes all needed dependency of the project, except for org.apache.hadoop.* jars that are supposed to be available from the deployed Hadoop cluster.
│ ├── src
│ └── target
├── bagel//Bagel是基于Spark的轻量级Pregel实现
│ ├── src
│ └── target
├── bin
├── build
│ ├── scala-2.10.4
│ └── zinc-0.3.5.3
├── conf
├── core
│ ├── src
│ └── target
├── data // For mlib
│ └── mllib
├── dev //This directory contains scripts useful to developers when packaging, testing, or committing to Spark.
│ ├── audit-release
│ ├── create-release
│ └── tests
├── dist
│ ├── bin
│ ├── conf
│ ├── data
│ ├── ec2
│ ├── examples
│ ├── lib
│ ├── python
│ ├── sbin
│ └── tachyon
├── docker
│ ├── spark-mesos
│ └── spark-test
├── docs
│ ├── css
│ ├── img
│ ├── js
│ ├── _layouts
│ └── _plugins
├── ec2 //deploy.generic README spark-ec2 spark_ec2.py
│ └── deploy.generic
├── examples //java/ python/ r/ resources/ scala/
│ ├── src
│ └── target
├── external //flume flume-sink kafka kafka-assembly mqtt twitter zeromq
│ ├── flume
│ ├── flume-sink
│ ├── kafka
│ ├── kafka-assembly
│ ├── mqtt
│ ├── twitter
│ └── zeromq
│ ├── kinesis-asl
│ └── spark-ganglia-lgpl
├── graphx
│ ├── data
│ ├── src
│ └── target
├── launcher
│ ├── src
│ └── target
├── lib_managed
│ └── jars
├── mllib
│ ├── src
│ └── target
├── network
│ ├── common
│ ├── shuffle
│ └── yarn
├── project
│ └── project
├── python
│ ├── docs
│ ├── lib
│ ├── pyspark
│ └── test_support
├── R
│ └── pkg
├── repl
│ ├── scala-2.10
│ ├── scala-2.11
│ ├── src
│ └── target
├── sbin
├── sbt
├── sql
│ ├── catalyst
│ ├── core
│ ├── hive
│ └── hive-thriftserver
├── streaming
│ ├── src
│ └── target
├── target
│ ├── antrun
│ ├── classes
│ ├── maven-archiver
│ ├── maven-shared-archive-resources
│ ├── test-classes
│ └── tmp
├── tools //GenerateMIMAIgnore.scala? JavaAPICompletenessChecker.scala StoragePerfTester.scala
│ ├── src
│ └── target
├── unsafe //Facade java unsafe object
│ ├── src
│ └── target
└── yarn // Spark yarn integration
├── src
.
├── assembly//It creates a single tar.gz file that includes all needed dependency of the project, except for org.apache.hadoop.* jars that are supposed to be available from the deployed Hadoop cluster.
│ ├── src
│ └── target
├── bagel//Bagel是基于Spark的轻量级Pregel实现
│ ├── src
│ └── target
├── bin
├── build
│ ├── scala-2.10.4
│ └── zinc-0.3.5.3
├── conf
├── core
│ ├── src
│ └── target
├── data // For mlib
│ └── mllib
├── dev //This directory contains scripts useful to developers when packaging, testing, or committing to Spark.
│ ├── audit-release
│ ├── create-release
│ └── tests
├── dist
│ ├── bin
│ ├── conf
│ ├── data
│ ├── ec2
│ ├── examples
│ ├── lib
│ ├── python
│ ├── sbin
│ └── tachyon
├── docker
│ ├── spark-mesos
│ └── spark-test
├── docs
│ ├── css
│ ├── img
│ ├── js
│ ├── _layouts
│ └── _plugins
├── ec2 //deploy.generic README spark-ec2 spark_ec2.py
│ └── deploy.generic
├── examples //java/ python/ r/ resources/ scala/
│ ├── src
│ └── target
├── external //flume flume-sink kafka kafka-assembly mqtt twitter zeromq
│ ├── flume
│ ├── flume-sink
│ ├── kafka
│ ├── kafka-assembly
│ ├── mqtt
│ └── zeromq
├── extras //This directory contains build components not included by default in Spark's build.
// java8-tests kinesis-asl spark-ganglia-lgpl
│ ├── java8-tests│ ├── kinesis-asl
│ └── spark-ganglia-lgpl
├── graphx
│ ├── data
│ ├── src
│ └── target
├── launcher
│ ├── src
│ └── target
├── lib_managed
│ └── jars
├── mllib
│ ├── src
│ └── target
├── network
│ ├── common
│ ├── shuffle
│ └── yarn
├── project
│ └── project
├── python
│ ├── docs
│ ├── lib
│ ├── pyspark
│ └── test_support
├── R
│ └── pkg
├── repl
│ ├── scala-2.10
│ ├── scala-2.11
│ ├── src
│ └── target
├── sbin
├── sbt
├── sql
│ ├── catalyst
│ ├── core
│ ├── hive
│ └── hive-thriftserver
├── streaming
│ ├── src
│ └── target
├── target
│ ├── antrun
│ ├── classes
│ ├── maven-archiver
│ ├── maven-shared-archive-resources
│ ├── test-classes
│ └── tmp
├── tools //GenerateMIMAIgnore.scala? JavaAPICompletenessChecker.scala StoragePerfTester.scala
│ ├── src
│ └── target
├── unsafe //Facade java unsafe object
│ ├── src
│ └── target
└── yarn // Spark yarn integration
├── src
└── target
Bagel的官方说明摘录:
在Pregel的编程模型,jobs是作为一系列的迭代,称之为supersteps。在每一个superstep,每一个vertex在图里面,都作为一个用户指定的功能,可以更新和vertex相关联的状态,并发送消息,到其它的vertices,用于下一步的iteration。
Bagel的实现,是在Spark的RDD上进行操作,Keys是Vertex Ids,Values是vertices和它们的关联状态。在每一个superstep,Bagel在每一个Vertex上,运行一个用户指定的函数compute,该函数接受当前的顶点状态和一个系列从上一个superstep发送过来的Message作为输入,然后返回新的Vertex和一个系列的外播Message。