Vit*_*t D 6 bigdata hdfs apache-spark
试图找到有关Apache Spark内部架构的完整文档,但没有结果.
例如,我正在尝试理解下一件事:假设我们在HDFS上有1Tb文本文件(群集中有3个节点,复制因子为1).该文件将被分配到128Mb块中,每个块将仅存储在一个节点上.我们在这些节点上运行Spark Workers.我知道Spark正在尝试使用存储在同一节点上的HDFS中的数据(以避免网络I/O).例如,我正试图在这个1Tb文本文件中进行单词计数.
我在这里有下一个问题:
我将非常感谢Apache Spark架构指南的任何链接.
以下是您的问题的答案
Spark将尝试将128Mb块加载到内存中并在RAM中处理它.请记住,由于Java开销(Java标头等),内存中的大小可能比原始文件的原始大小大几倍.根据我的经验,它可以大2-4倍.如果内存不足(RAM),Spark会将数据溢出到本地磁盘.您可能需要调整这两个参数以最大限度地减少溢出:spark.shuffle.memoryFraction和spark.storage.memoryFraction.
Spark总是会尝试使用HDFS中的本地数据.如果块本地不可用,它将从群集中的另一个节点检索它.更多信息
在随机播放时,您无需手动将中间结果保存到HDFS.Spark会将结果写入本地存储,并且只将最大化本地存储重用所需的数据随机播放到下一阶段.
这里有一个很好的视频,详细介绍了Spark架构,在随机播放过程中会发生什么以及优化性能的技巧.
| 归档时间: |
|
| 查看次数: |
1735 次 |
| 最近记录: |