Presto-交互式计算引擎

交互式处理

  • 交互式处理是操作人员和系统之间存在交互作用的信息处理方式,操作人员通过终端设备输入信息和操作命令,系统刚接到后立即处理,并通过终端设备显示处理结果。
  • 为了实现高性能数据处理,交互式极端引擎采用mmp架构,并将充分使用内存加速
  • presto的出现时为了应对hadoop的一些缺点:
    1、io密集,因为mepreduce作业之间的交互是用hdfs作为中介的
    2、任务调度大,因为是分布式的,每个jave都需要一个java虚拟机
    3、无法利用内存
    4、map和reduce都需要排序,这样就有很多弊端

交互式查询引擎分类

  • ROLAP(impala、presto)
    基于关系数据库的
  • MOLAP(druid、kylin)
    基于多维数据库的
  • HOLAP
    基于混合组织数据库的

presto的介绍

  • presto是facebook开源的交互式计算引擎
  • 能处理tb甚至pb级别的数据
  • 因为prosto能和hive进行无缝连接,所以成为了非常主流的olap引擎

presto的基本架构

presto查询引擎是一个master-slave的架构,由一个coordinator的服务,一个discover server服务,多个worker服务

  • coordinator:
    协调者,接收客户端查询查询请求(sql)并对其进行词法分析,语法分析,生成逻辑查询计划以及物理查询计划后,将各个任务调度到worker上去,在worker结果返回之前并对其汇总
  • discovery server:服务发现组件,各个work启动时会向discovery server注册,并将状态信息定期汇报给diecovery server没这样coordinator就会从siecovery server 获取各个worker的工作列表,discovery server是一个轻量级服务,一般嵌在coordinator中
  • worker:任务执行者接收来自zoordinator的任务,利用多线程的方式并行,应将结果发送个coordinator,
    presto是一个分布式的查询引擎,并不提供数据的储存服务,为此,presto是一个插拔式的设计思路,支持多种数据源,包括hive,hdfs,mysql,等

你可能感兴趣的:(Presto-交互式计算引擎)