当客户机在impala中触发查询时会发生什么?

bjp0bcyl  于 2021-06-26  发布在  Impala
关注(0)|答案(1)|浏览(354)

当一个查询被触发时,客户机如何联系impalad deamon?当客户端触发一个必须由impala执行的查询时,在后台到底发生了什么?

s3fp2yjn

s3fp2yjn1#

以impala shell为例,它是一个impalashell python类,扩展了cmd.cmd。用户将:

  1. connect ip:port 在shell中,它将调用 do_connect(..) 并通过thrift连接到 Impala 后端。一个节俭客户机被创建为 self.imp_service = ImpalaService.Client(protocol) 2) select from table... 在shell中,它将调用 do_select(...) 以及 self.imp_service.query(query) 将被称为thrfit rpc。
    3) 然后在impalad上并行执行rpc查询 void ImpalaServer::query(QueryHandle&, const Query&) :
    协调器解析查询并创建一个片段ast,并将每个片段分配给一组主机执行;
    rpc调用是为每个片段并行地向每个主机发出的。
    父片段将等待子片段完成。
    4) 当所有片段完成后,数据将显示在屏幕上 fetch() 这是一个来自客户的节俭电话。

相关问题