使用Spark

时间:2016-01-31 13:45:53

标签: elasticsearch apache-spark

我使用Spark向Elasticsearch发出查询。正如文档中所述,Spark根据Elasticsearch分片的数量创建任务(例如,对于32个分片,将有32个Spark任务)。每个任务都连接并从单独的Elasticsearch分片中检索数据。

还有一个获取阶段的描述(来自Elasticsearch: The Definitive Guide — Distributed Search Execution » Fetch Phase):

  

分布式阶段包括以下步骤:

     
      
  1. 协调节点标识需要获取哪些文档   并向相关分片发出多GET请求。
  2.   
  3. 如果需要,每个分片都会加载文档并丰富它们   然后将文档返回到协调节点。
  4.   
  5. 获取所有文档后,协调节点返回   结果给客户。
  6.   

在Elasticsearch-Spark解决方案中,我们有不同的算法,因为没有协调节点:

  1. 如果需要,Shard加载文档并丰富它们。
  2. Elasticsearch将分片结果返回给客户端(Spark任务)。
  3. 我的问题如下:

    我查看慢速日志中获取阶段的已用时间。经过的时间是否包括将所有数据从分片传输到客户端(Spark任务)?或者它只包含从文件系统中检索数据的时间?

0 个答案:

没有答案