试图理解Spark为什么需要本地机器上的空间!有办法绕过它吗?我不断遇到"设备上没有剩余空间"。我知道我可以将"spark.local.dir"设置为逗号分隔的列表,但有办法使用HDFS吗?
我正在尝试合并两个巨大的数据集。在较小的数据集上,Spark是MapReduce的对手,但在我用这些巨大的数据集证明之前,我不能宣布胜利。我没有使用YARN。此外,我们的网关节点(也称为边缘节点)将没有太多可用空间。
有办法绕过这个吗?
在groupByKey操作时,Spark只写入tmpDir序列化的分区。它是普通文件(请参阅ShuffledRDD guts、序列化程序等),写入HDFS已经足够复杂了。
只需将"spark.local.dir"设置为空闲卷即可。这些数据只需要用于本地机器,而不需要用于分布式数据(如HDFS)。