presto是什么了解一下:
- 秒级查询引擎(不做存储),GB-PB级
- 不依赖于yarn,有自己的资源管理和执行计划
- 支持多种数据源:hive、redis、kafka
presto架构
presto优缺点
presto优点
- 内存到内存的传输,没有磁盘IO,快
- 所有的计算阶段都在一个从前到后的管道内执行,提交任务生成执行计划,按执行计划从头计算到尾,没有多个阶段之间的等待,快(意味着单机?)
- 支持跨数据源联表查,hive和mysql关联查询
presto缺点
- 联表查询产生大量临时数据,速度会变慢(解决办法:先join好处理成一张大宽表,再给presto查)。处理PB级别海量数据分析,但并不是将PB数据都放在内存中计算,而是根据场景,比如COUNT,AVG等聚合运算,是边读边计算再清理内存,这种比较理想内存消耗并不多;
mapreduce慢的原因
- 数据落磁盘,磁盘IO、网络IO
- 复杂的逻辑需要多个mr,是串行
presto和impala对比
- impala是cdh里的一个组件,和presto理念很相似,impala性能稍领先于presto
- presto支持的数据源类型更多:hive、图数据库、传统关系型数据库、redis等
其他信息
- 大宽表建议用clickhouse/presto