cloudera - What happens when a query is fired by client in Impala? -


how client contact impalad deamon when query fired ? happens in background when client fires query has executed impala ?

take impala-shell example, impalashell python class extends cmd.cmd. user will:

1) connect ip:port in shell, call do_connect(..) , connect impala backend through thrift. , thrift client created self.imp_service = impalaservice.client(protocol)

2) select xxx table... in shell, call do_select(...) , self.imp_service.query(query) called thrfit rpc.

3) rpc query executed on impalad side void impalaserver::query(queryhandle&, const query&) :

  • coordinator parse query , create fragmented ast, , assign each fragment set of hosts execute;
  • rpc calls issued in parallel each host each fragment.

  • parent fragment wait until child fragment done.

4) when fragments done, data shown on screen after fetch() thrift call client side.


Comments

Popular posts from this blog

java - nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet Hibernate+SpringMVC -

sql - Postgresql tables exists, but getting "relation does not exist" when querying -

asp.net mvc - breakpoint on javascript in CSHTML? -