【工作】Presto 集群实测,以及与Spark3、Hive3性能对比

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【工作】Presto 集群实测,以及与Spark3、Hive3性能对比相关的知识,希望对你有一定的参考价值。

参考技术A cat config.properties

cat hive.properties

目前只是初步测试,语句也很简单,场景很单调,没有做深入调优,但是也看出了一些问题。

说实话觉得有点失望,presto居然那么慢。已经在官网blog/doc看了许多文档,没有找到满意的调优策略,只是这种简单过滤输出,调优核心无非是数据本地调度,减少网络传输,以及合适的split大小。

可是实测下来发现presto调度和执行框架上比spark臃肿的多,spark就是很简单的stage/task两层结构,task直接都是Iterator交互,一个task执行是完整的可预期的。而presto的任务执行很复杂,时间片,优先级,各种异步,加锁,这种设计在高响应,流水线,多任务模式下是需要的,但是个人认为是损失了性能的,数据吞吐上明显比不过Spark这种批处理调度。

另外,presto的中间数据也比较大,Page/Block似乎比二进制数据大的多(相对于spark的OffHeap Binary ColumnRow来说),而且数据交互模式是一个个Operator,函数调用太多了(spark的codegen把task内的数据处理逻辑都尽可能折叠刀一个方法里,执行效率提升还是很明显的)

Presto性能不足的原因

PS:下图显示执行过程中的dstat,system的int/csw实在太高了

PS:目前研究时间也不长,看看是不是别的原因吧,以上只是个人理解和初步测试,可能结论不对。性能实在不应该比spark差那么多。

以上是关于【工作】Presto 集群实测,以及与Spark3、Hive3性能对比的主要内容,如果未能解决你的问题,请参考以下文章

Presto Web UI

Presto系列 | 二Presto Web UI

Presto系列 | 二Presto Web UI

华为云Hadoop与Spark集群环境搭建

presto + Hive 安全配置

presto 可以有多个工作进程吗?