如果我有一个Hadoop集群,例如3个数据节点和1个名称节点,并且在spark代码中我使用类似dataframe.persist(MEMORY_AND_DISK)
的内容,这些数据会在哪里得到保留?是在Namenode(驱动程序)内存或Datanode(执行程序)内存中还是两者都有?
此外,缓存数据的存储是否依赖于堆大小?如果是这样,我如何增加所有节点的堆大小?
答案 0 :(得分:3)
NameNode不是驱动程序,Datanode不是执行程序。 YARN框架中的所有Spark进程都发生在ResourceManagers中(通常在DataNode上,是的),但是每个应用程序都有自己的临时存储,由YARN配置设置。
如果需要查找文件,Spark UI的“存储”选项卡可能会告诉您文件的实际位置。
相对于YARN容器大小的大小,分别通过增加执行程序/驱动程序内存来增加堆大小。