使用HDFS而不是spark.local.dir

时间:2014-10-13 21:32:56

标签: hadoop mapreduce hdfs apache-spark

试图理解为什么Spark需要本地机器上的空间!有办法解决吗?我一直遇到“设备上没有空间”。我知道我可以将'spark.local.dir'设置为以逗号分隔的列表,但有没有办法使用HDFS?

我正在尝试合并两个巨大的数据集。在较小的数据集上,Spark正在踢MapReduce,但在我用这些庞大的数据集证明之前,我无法宣称胜利。我没有使用YARN。此外,我们的网关节点(也称为边缘节点)将没有大量可用空间。

请告诉我有办法解决这个问题。感谢。

1 个答案:

答案 0 :(得分:1)

在groupByKey操作时,Spark只会写入tmpDir序列化分区。它是普通文件(参见ShuffledRDD guts,serializer等),写入HDFS非常复杂。

只需将'spark.local.dir'设置为免费音量即可。此数据仅适用于本地计算机,不适用于分布式数据(如HDFS)。