我使用Spark向Elasticsearch发出查询。正如文档中所述,Spark根据Elasticsearch分片的数量创建任务(例如,对于32个分片,将有32个Spark任务)。每个任务都连接并从单独的Elasticsearch分片中检索数据。
还有一个获取阶段的描述(来自Elasticsearch: The Definitive Guide — Distributed Search Execution » Fetch Phase):
分布式阶段包括以下步骤:
- 协调节点标识需要获取哪些文档 并向相关分片发出多GET请求。
- 如果需要,每个分片都会加载文档并丰富它们 然后将文档返回到协调节点。
- 获取所有文档后,协调节点返回 结果给客户。
醇>
在Elasticsearch-Spark解决方案中,我们有不同的算法,因为没有协调节点:
我的问题如下:
我查看慢速日志中获取阶段的已用时间。经过的时间是否包括将所有数据从分片传输到客户端(Spark任务)?或者它只包含从文件系统中检索数据的时间?