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

Posted

技术标签:

【中文标题】presto 可以有多个工作进程吗?【英文标题】:Can we have more than one worker process for presto? 【发布时间】:2017-05-21 18:58:06 【问题描述】:

假设在我的 presto 集群中,我有两个数据源 HIVE 和 Cassandra。即我有一个连接到 Hive 源的 Hive 目录和一个连接到 Cassandra 源的 Cassandra 目录。两个团队分别在每个目录上工作。

如果两个团队并行提交单独的查询,工作人员将为每个查询创建任务。就像为每个任务工作者创建一个新线程一样,这意味着两个查询的任务都驻留在同一个 JVM(堆)中。由于两个团队都希望他们的数据非常安全,他们希望为他们的任务隔离内存(他们不想冒任何代码注入的风险)。

有什么办法,让每个源的所有任务都运行在单独的JVM(Heap)中。我的意思是我们可以运行多个工作进程:每个数据源都运行吗?像一些工人组什么的。

PS.不是presto专家。现在只是探索。

【问题讨论】:

【参考方案1】:

没有办法做到这一点,但解决方法很简单;只需运行两个集群。

【讨论】:

我们有一个大的 presto 集群,我们想将 presto 用于一个新的应用程序。由于新应用程序中的数据是安全的,并且我们不能为该应用程序共享堆,因此我们希望应用程序的内存隔离。简而言之,我们不能有 2 个集群。对于这种情况,只有一个集群是否有其他解决方法? 我不确定这在任何系统中是如何实现的,除非您为每个查询运行单独的进程。即使那样,你也没有“获得”太多。在 Presto 中,有共享的进程空间,但查询不共享“数据”(没有这样的工具),因此假设您已正确保护集群,就不会有问题。这就是我们在 Facebook 的运作方式。

以上是关于presto 可以有多个工作进程吗?的主要内容,如果未能解决你的问题,请参考以下文章

DataProc Presto 会自动拾取新节点吗?

我可以在写之前使用 Athena / Presto 对表格进行排序吗?

为啥 Presto 比 Spark SQL 快 [关闭]

presto替换多个字符

Presto实战

Presto 原生多 Coordinator 功能简介,可以在生产环境使用