问题
你有一个Apache火花工作正确触发,但仍然闲置很长一段时间之前开始。
你有火花的工作,跑一段时间,但闲置很长一段时间恢复。
症状包括:
- 集群缩减到最小数量的工人在空闲时间节点。
- 司机日志不表现出任何火花在空闲时间工作,但也有重复的元数据信息。
- Ganglia司机节点上只显示活动。
- 遗嘱执行人日志没有活动。
- 一段时间过后,集群规模火花开始或恢复工作。
导致
这些症状表明,有很多文件扫描操作发生在这段时间的工作。表读和在下游消费操作。
你看到文件扫描操作细节当你回顾火花UI中的SQL选项卡。查询完成,这使得它看起来好像没有工作在这空闲时间执行。
司机节点是繁忙的,因为它是执行文件清单和处理数据(包含模式和其他信息的元数据)。这个工作只发生在司机节点上,这就是为什么你只看到司机Ganglia度量节点活动。
这个问题变得更加明显,如果你有大量的小文件。
解决方案
你应该摄取控制文件大小和数量的文件在源位置通过实现一个预处理步骤。你也可以摄入分解成较小的步骤,因此较少的文件需要扫描一次。
另一个选择是你的数据存储迁移到三角洲湖,它使用事务日志作为所有底层文件的索引。