对RDD Spark的怀疑

时间:2016-10-31 15:52:32

标签: hadoop apache-spark

我想了解下面关于Spark Concept的RDD的事情。

  1. RDD只是一个复制概念,需要从HDFS存储器中复制某个节点的RAM中的数据以加快执行速度吗?

  2. 如果文件在群集中分割,那么对于单个flie,RDD会从其他节点带来所有需要的数据吗?

  3. 如果第二点是正确的,那么它如何决定它必须执行哪个节点的JVM?数据位置如何在这里工作?

1 个答案:

答案 0 :(得分:0)

RDD是Apache Spark的核心,它是分布式对象集合的数据抽象。它们是数据元素的不可变分布式集合,可以跨机器集群存储在内存或磁盘中。数据在群集中的计算机之间进行分区,可以与提供转换和操作的低级API并行运行。 RDD具有容错能力,因为它们可以跟踪数据沿袭信息,以便在发生故障时自动重建丢失的数据。参考:https://databricks.com/blog/2016/06/22/apache-spark-key-terms-explained.html

如果在加载时文件在群集中拆分,则计算将在RDD所在的节点上完成。也就是说,在数据驻留的地方(以及它可以)执行计算,以最小化执行混洗的需要。有关Spark和数据位置的更多信息,请参阅:https://databricks.gitbooks.io/databricks-spark-knowledge-base/content/performance_optimization/data_locality.html

注意,有关Spark Research的更多信息,请参阅:http://spark.apache.org/research.html;更具体地说,请参考Zaharia等。 al。的论文:弹性分布式数据集:容错的抽象 内存中的群集计算(http://people.csail.mit.edu/matei/papers/2012/nsdi_spark.pdf)。