Apache spark spark如何加载大于群集磁盘大小的输入文件?

Apache spark spark如何加载大于群集磁盘大小的输入文件?,apache-spark,Apache Spark,我是个新手。我对spark加载输入数据的方式有点困惑。例如:假设我有一个1 TB的文件,我有一个spark群集,每个群集有3个节点(4cpu、8gb ram和10gb磁盘空间)。现在spark如何在这些节点之间划分数据?它是只加载文件的元数据,还是尝试加载足够的元数据以适应集群并在迭代中处理文件?文件存储在HDFS中,而不是spark。 使用replication factor 3,您将需要3 TB的硬盘 请跟随链接以更好地理解 谢谢,我将通过该链接。还有,当你说我需要3TB磁盘时,你是指sp

我是个新手。我对spark加载输入数据的方式有点困惑。例如:假设我有一个1 TB的文件,我有一个spark群集,每个群集有3个节点(4cpu、8gb ram和10gb磁盘空间)。现在spark如何在这些节点之间划分数据?它是只加载文件的元数据,还是尝试加载足够的元数据以适应集群并在迭代中处理文件?

文件存储在HDFS中,而不是spark。
使用replication factor 3,您将需要3 TB的硬盘

请跟随链接以更好地理解


谢谢,我将通过该链接。还有,当你说我需要3TB磁盘时,你是指spark cluster还是hdfs/s3?如果你指的是hdfs/s3,那意味着spark以块的形式加载数据?请阅读InputFormats的工作原理,spark总是以块的形式读取数据。只有当您指示将整个数据放在内存中时,它才会保存在内存中,否则它的磁盘和内存会再次感谢链接,但老实说,它们不会回答我的问题。但我想我需要简化我的问题。据我所知,spark以块的形式处理数据。但它是从网络下载进行计算所需的数据块(例如:s3 bucket),还是下载整个文件,然后选择哪个块应该转到哪个节点?那么,举个例子,我的spark集群需要3 TB的磁盘空间吗?这行代码的基本情况是:val myRdd=sc.textFile(“s3n://myBucket/myFile1.log”)。你回答了我一个问题,普通Java程序如何从本地文件系统读取数据,是成批还是一次性完全读取。1.S3、HDF是类似于ext3的文件系统。2.它永远不会下载文件,它将以小块的形式读取。3.S3是一个远程文件系统,在本例中没有数据位置。4.请通读基础知识,否则所有概念看起来都很复杂