Hadoop 如何在spark上设置配置单元中的spark RDD存储级别?
在我的spark hive作业中,我遇到以下错误: org.apache.spark.shuffle.MetadataFetchFailedException:缺少shuffle 0的输出位置 谢谢你的回答(),我知道我的hiveonspark工作可能也有同样的问题 由于hive将sql转换为hiveonspark作业,我不知道如何在hive中设置它以使其hiveonspark作业从StorageLevel.MEMORY\u仅更改为StorageLevel.MEMORY\u和磁盘Hadoop 如何在spark上设置配置单元中的spark RDD存储级别?,hadoop,apache-spark,hive,hiveql,Hadoop,Apache Spark,Hive,Hiveql,在我的spark hive作业中,我遇到以下错误: org.apache.spark.shuffle.MetadataFetchFailedException:缺少shuffle 0的输出位置 谢谢你的回答(),我知道我的hiveonspark工作可能也有同样的问题 由于hive将sql转换为hiveonspark作业,我不知道如何在hive中设置它以使其hiveonspark作业从StorageLevel.MEMORY\u仅更改为StorageLevel.MEMORY\u和磁盘 感谢您的帮助~
感谢您的帮助~~~您可以使用
缓存/UNCACHE[LAZY]表来管理缓存
如果您使用的是DataFrame,那么可以使用persist(…)来指定存储级别。看
除了设置存储级别外,还可以优化其他内容。SparkSQL使用一种称为列式存储的不同缓存机制,这是一种更有效的数据缓存方式(因为SparkSQL支持模式)。可以对不同的配置属性集进行调优,以管理缓存,如中所述
- spark.sql.inMemoryColumnarStorage.compressed
- spark.sql.inMemoryColumnarStorage.batchSize
谢谢您的回答,但是sparksql和hiveonspark是一样的吗?我想知道,当数据内存不足时,在spark上的HIVE中的spark作业可以写入磁盘吗?如果可以,它是默认的,或者我必须设置一些东西?我相信它们都是相同的,因为它们都使用相同的运行时