作者回复: 你说的没错,默认是关闭的,这块细节咱们在后面的配置项章节和内存视角会有详细展开~
作者回复: yarn的node manager在创建executor的时候,会预留一部分资源给yarn自己,因此有一部分overhead,所以实际allocate给executor的内存,会比你指定的,要少一些,不过还好,没有少很多。
作者回复: 一般的倾斜可以交给aqe,不过aqe处理倾斜本身也有局限性,这个我们后面aqe那一讲再展开哈~
作者回复: 为啥不都用dataframe呢?rdd开发框架,享受不到catalyst和tungsten的性能红利,最好都在dataframe api下去开发
作者回复: 对,在这个场景下,先用distinct节省数据量更合适。咱们能省则省、能拖则拖是一般性原则哈。不过先用distinct其实还是遵循了能省则省的原则。get到核心思想就好,灵活应用~
作者回复: 看上去是shuffle fetch的过程中出了问题,总是没办法成功拉取远端数据,之所以时间长,是因为task总是retry,不过居然最后都试成功了。也就是你的task从那个host不停地拉数据、不停地失败、不停地重试,在第4次fail之前,总能成功。基于这个猜测,我觉得看看那台主机的文件系统。如果文件系统没问题,就要看那台主机的负载,需要double check下是否真的没有大gc、数据是不是真的没有倾斜。