这可能是一个非常笼统的问题,但希望有人能指出一些提示。但我发现有时,我的工作火花似乎多次“停顿”:
这项工作的本质是:读取 orc 文件(从 hive 表中),按某些列过滤,不连接,然后写出到另一个 hive 表。
我的工作/阶段总共有 64K 任务(FileScan orc,其次是 Filter、Project)。
该应用程序有 500 个执行器,每个执行器有 4 个核心。最初,大约有 2000 个任务同时运行,情况看起来不错。
过了一会儿,我注意到运行任务的数量一直下降到接近 100 个。许多核心/执行程序只是无所事事地等待。(我检查了这些等待执行者的日志,没有错误。所有分配的任务都在他们身上完成,他们只是在等待)
大约 3-5 分钟后,这些等待的执行者突然得到了任务分配,现在正在愉快地工作。
这可能是什么特殊原因?该应用程序从 spark-shell 运行(--master yarn --deploy-mode 客户端,指定了执行器/大小等的数量)
谢谢!