[英]Spark shuffle write: why shuffle write data is much bigger than input data read from hdfs?
[英]Can spark write shuffle data to hdfs?
我正在使用SparkSQL将一个小表连接到Spark中的一个大表。 我有一个问题,即混入写入过程大约在连接进行到一半时,我的本地磁盘已被填充。
是否有一个Spark设置可用于将随机播放数据溢出到本地磁盘,而不是我们的hdfs存储(大型Isilon群集)?
在输出大于合并的本地磁盘存储的情况下,还有其他方法可以进行联接吗?
我确保两个输入表都已分区,并且输出表已分区。
我不在乎查询的性能,我只希望它完成而不会崩溃。
我正在运行Spark 1.5.1。 我也乐于尝试使用蜂巢,但是我的经验告诉我,它崩溃的速度甚至更快。
有关我的集群的更多详细信息,您还可以看到此问题 。
我认为您可以将结果存储在hdfs中,但是不能将数据计算存储到hdfs中。 因为计算必须在内存或磁盘上进行。
如果您的本地磁盘不够用,请找到一个可用的卷并设置'spark.local.dir'
,它应该更靠近以获得更好的性能。
不,这是本地目录,HDFS是共享文件系统。
您可以通过调整Spark进行数据分区的方式(取决于您的输入和处理)来减少混洗数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.