是否有与原生 Clojure 中的 Resilient Distributed Dataset 等效的东西?
Is there an equivalent to the Resilient Distributed Dataset in native Clojure?
Apache Spark has the concept of a Resilient Distributed Dataset.
一个 RDD 是:
It is an immutable distributed collection of objects. Each dataset in RDD is divided into logical partitions, which may be computed on different nodes of the cluster.
Formally, an RDD is a read-only, partitioned collection of records. RDDs can be created through deterministic operations on either data on stable storage or other RDDs. RDD is a fault-tolerant collection of elements that can be operated on in parallel.
现在 Clojure 有 immutable data structures, and running Higher Order Functions in parallel.
我知道 Flambo and Sparkling。我不是在寻找接口,而是在寻找等效的数据结构。
我的问题是:是否有与原生 Clojure 中的弹性分布式数据集等效的东西?
好吧,一个普通的 Clojure 映射和向量可以很容易地在子分区中使用 core 在多个内核上并行处理。reducers/fold。
默认情况下,映射和向量是不可变的,此设置似乎等同于 RDD。
不同之处在于,fold 将在多核而不是多台机器上进行计算。所以它是并行的,但不是分布式的。
Onyx 和Storm 是完全用Clojure 实现的分布式计算框架,可以做Spark 做的事情。这些可能与 spark 上的 RDD 一样接近。
Apache Spark has the concept of a Resilient Distributed Dataset.
一个 RDD 是:
It is an immutable distributed collection of objects. Each dataset in RDD is divided into logical partitions, which may be computed on different nodes of the cluster.
Formally, an RDD is a read-only, partitioned collection of records. RDDs can be created through deterministic operations on either data on stable storage or other RDDs. RDD is a fault-tolerant collection of elements that can be operated on in parallel.
现在 Clojure 有 immutable data structures, and running Higher Order Functions in parallel.
我知道 Flambo and Sparkling。我不是在寻找接口,而是在寻找等效的数据结构。
我的问题是:是否有与原生 Clojure 中的弹性分布式数据集等效的东西?
好吧,一个普通的 Clojure 映射和向量可以很容易地在子分区中使用 core 在多个内核上并行处理。reducers/fold。
默认情况下,映射和向量是不可变的,此设置似乎等同于 RDD。
不同之处在于,fold 将在多核而不是多台机器上进行计算。所以它是并行的,但不是分布式的。
Onyx 和Storm 是完全用Clojure 实现的分布式计算框架,可以做Spark 做的事情。这些可能与 spark 上的 RDD 一样接近。