使用hdfs而不是spark.local.dir

daupos2t  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(440)

试图理解为什么spark需要本地机器上的空间!有办法吗?我总是遇到“设备上没有空间了”。我知道我可以将'spark.local.dir'设置为逗号分隔的列表,但是有没有办法改用hdfs呢?
我正在尝试合并两个巨大的数据集。在较小的数据集上,spark正在踢mapreduce的屁股,但在我用这些巨大的数据集证明之前,我不能宣称自己是胜利的。我没有用Yarn。此外,我们的网关节点(aka edge nodes)将没有太多可用空间。
请告诉我有办法解决这个问题。谢谢。

brc7rcf0

brc7rcf01#

当groupbykey操作时,spark只写入tmpdir序列化分区。它是普通文件(请参阅shuffleddd guts、serializer等),写入hdfs已经足够复杂了。
只需将“spark.local.dir”设置为“free volume”。这些数据只需要用于本地机器,而不需要用于分布式数据(如hdfs)。

相关问题