【发布时间】:2015-08-26 22:11:48
【问题描述】:
试图找到有关 Apache Spark 内部架构的完整文档,但那里没有结果。
例如,我试图理解下一件事: 假设我们在 HDFS 上有 1Tb 的文本文件(集群中有 3 个节点,复制因子为 1)。该文件将被分成 128Mb 的块,每个块将仅存储在一个节点上。我们在这些节点上运行 Spark Workers。我知道 Spark 正在尝试处理存储在同一节点上 HDFS 中的数据(以避免网络 I/O)。例如,我正在尝试在这个 1Tb 文本文件中进行字数统计。
我有下一个问题:
- Spark 是否会将chuck (128Mb) 加载到RAM 中,计算字数,然后从内存中删除并按顺序执行?如果没有可用的 RAM 怎么办?
- Spark 什么时候不使用 HDFS 上的本地数据?
- 如果我需要执行更复杂的任务,当每个 Worker 的每次迭代结果需要传输到所有其他 Worker(洗牌?)时,我是否需要自己将它们写入 HDFS 然后读取他们?例如,我不明白 K-means 聚类或梯度下降如何在 Spark 上工作。
我将感谢任何指向 Apache Spark 架构指南的链接。
【问题讨论】:
-
您可能想获得这本书:shop.oreilly.com/product/0636920028512.do。此外,邮件列表中有一些令人惊讶的有趣主题:apache-spark-user-list.1001560.n3.nabble.com。 @Maksud 链接的视频是迄今为止我在 spark 上看到的最好的视频(尤其是前 1:40 小时)。最后,必读的是 Matei Zaharia 等人的 RDD 论文:cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf
标签: apache-spark hdfs bigdata