Presto 作业在集群模式下不工作,仅使用一个节点性能



我有 2 个节点 presto 集群,当我运行查询时,它只在一个节点上运行,

----------普雷斯托工人--------------

config.properties
coordinator=false
node-scheduler.include-coordinator=false
http-server.http.port=8181
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://10.0.0.30:8181
jvm.config
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
node.properties
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-fffffffffffa
node.data-dir=/var/presto/data
-----------presto coordinator------------
config.properties
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8181
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://10.0.0.30:8181
jvm.config
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
node.properties
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/var/presto/data

当我运行以下查询时,它只使用一个节点,从来源 = "0705529921"的smsc_cdr_2019_07_12中选择cdr_timestamp;

此表有 40M 条记录和 35 列。

当我使用 1 台服务器运行查询时,它将拆分为 17 和 3.30 分钟,使用两台服务器,它也将拆分为 17 分钟,也为 3 分钟 + 服用

当使用 2 个节点运行时,Presto 的第二个节点内存消耗几乎为 0。请帮我解决这个问题。

Presto JDBC连接器通常是单线程的。例如,在Presto术语中,MySQL连接器为查询中访问的每个表创建一个拆分。因此,读取发生在单个节点上,在单个线程中。

有一个建议将基于 JDBC 的连接器扩展为并行:https://github.com/prestosql/presto/issues/389

注意:上述限制通常不是 JDBC 连接器固有的,这只是当前的状态。例如,Starburst Teradata 连接器支持并行读取。

最新更新