presto

架构

image.png
  1. 简述流程
    1.1 客户端通过http协议发送一个查询sql给coordinator
    1.2 coordinator接收到查询sql,会对该sql进行解析,生成查询执行计划,并依次生成相应的sqlqueryexecution, sqlstageexecution, httpremotetask.
    1.3 coordinator将每个task都分发到相应的task上进行执行。这个过程是通过htttpremotetask中的httpclient将创建或者更新task发送给相应task的worker节点taskresource所提供的restful接口,然后启动一个sqltaskexecution处理需要处理的split。
    1.4 上游的stage的task通过各种connector从相应的数据源取得数据
    1.5 下游的stage的task会读取上游stage的数据结果,并在内存中做相应的处理和计算
    1.6 coordinator从分发task后,就会一直不断的从single stage中的task获取计算结果,并将计算结果缓存到buffer中,知道所有的计算都结束
    1.7 client也会不断的从coordinator中获得结果

安装

  1. 下载编译,配置集群机器,分发服务
  2. 配置文件:内存,超时,log,jvm等
  3. connector和 catalog 一一对应,配置catalog信息
  4. 启动关闭等

restful

  1. 基于http rest的分布式调用
  2. stagement,query,stage,task各个级别的rest服务及处理

提交查询

1.cli根据query sql生成request,通过http rest传送给coordinator
2.然后用waitfor等待response回调

你可能感兴趣的:(presto)