gpt4 book ai didi

apache-spark - native 文件系统上的 Spark 行为

转载 作者:可可西里 更新时间:2023-11-01 16:35:26 24 4
gpt4 key购买 nike

我们正在尝试在没有 Hadoop 和 HDFS 等分布式存储的情况下在我们的项目中运行 Spark。 Spark 安装在具有 10 个内核和 16GB RAM 的单个节点上,并且该节点不属于任何集群。假设 Spark 驱动程序占用 2 个内核,其余内核在执行时由执行程序(每个 2 个)消耗。

如果我们将存储在 Spark 本地磁盘中的一个大 CSV 文件(大小为 1 GB)处理为 RDD,并将其重新分区为 4 个不同的分区,执行程序是否会并行处理每个分区?如果我们不将 RDD 重新分区为 4 个差异分区,执行者会做什么?如果不使用 HDFS,我们会失去分布式计算和并行性的能力吗?

最佳答案

Spark 将分区的最大大小限制为 2G,因此您应该能够以最少的分区和更快的处理时间来处理整个数据。您可以将 spark.executor.cores 设置为 8 以利用所有资源。

理想情况下,您应该根据数据大小设置分区数,最好将分区数设置为核心/执行器的倍数。

要回答您的问题,在您的情况下将分区数设置为 4 可能会导致将每个分区发送给执行程序。所以是的,每个分区将被并行处理。

如果您不重新分区,那么 Spark 会根据数据为您重新分区,并在执行程序之间分担负载。

Spark 在没有 Hadoop 的情况下工作得很好。由于您的文件位于本地文件系统而不是 HDFS 上,您可能会看到性能下降可以忽略不计,但对于大小为 1GB 的文件来说,这真的无关紧要。

关于apache-spark - native 文件系统上的 Spark 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54475949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com