我的理解是否正确,作业跟踪器在存储inputsplit的datanode上启动任务(mapper/reducer)并在该数据上运行该任务,mapper将其中间输出存储在其本地存储中?
所以我的问题是:因为mapper正在datanode上运行,所以它将它的中间数据存储在datanode的RAM中?由于datanode磁盘是hdfs的一部分,中间输出不存储在hdfs中.
在Spark Programming指南中,序列化RDD被称为减少内存使用的技术之一.根据我的理解,序列化是将对象转换为字节,以便可以轻松地将对象保存到存储中.那么它如何占用较少的空间?
采访中问了这个问题,每个JVM允许创建多少个sparkcontexts,为什么?我知道每个jvm仅允许一个sparkContext,但无法理解为什么?谁能帮我理解“每个jvm一个sparkcontext”背后的原因吗?