日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Trino集群選型與內(nèi)存配置建議

當您在使用Presto或Trino集群,不知道如何選擇機型或如何配置內(nèi)存時,可參考本文進行選擇或配置。本文為您介紹如何根據(jù)業(yè)務(wù)需求,選擇合適規(guī)格和內(nèi)存的Trino集群。

Trino集群選型建議

Trino概述中可知,Trino由一個Coordinator節(jié)點和多個Worker節(jié)點組成。在EMR集群中,默認情況下Trino的Coordinator會部署在Master節(jié)點上,Worker會部署在Core或Task節(jié)點上。目前Trino原生還不支持高可用,即無論是否購買高可用集群,Trino Coordinator均只會部署在一臺Master節(jié)點上。盡管如此,一臺Coordinator也足以支持數(shù)以百計的Worker節(jié)點的調(diào)度。

創(chuàng)建EMR集群時,選擇Trino本身及要用到的數(shù)據(jù)湖組件,即可創(chuàng)建Trino集群。在創(chuàng)建時,選型建議如下:

  • 如果選擇對等配置,即購買相同配置的Master節(jié)點與Core節(jié)點,Worker數(shù)量建議為5~20臺(也可以更多)。

  • Worker數(shù)量較少時,Master節(jié)點的配置可以降低到Core節(jié)點的一半。但Master節(jié)點的配置尤其是CPU核數(shù)盡量不要顯著低于Core節(jié)點,防止影響性能和穩(wěn)定性。

  • 集群規(guī)模較大時,建議優(yōu)先考慮增加Worker數(shù)量,而非提高單個節(jié)點配置。

  • 如果出現(xiàn)內(nèi)存不足等情況,可以使用EMR的彈性伸縮能力,對節(jié)點進行擴充,集群負載降低時可以再縮容,詳細信息請參見彈性伸縮概述

  • 如果您的集群不準備進行混合部署,而是僅使用Trino服務(wù),建議在創(chuàng)建集群時取消選擇HDFS、Hive等組件,僅選擇Trino本身及要用到的數(shù)據(jù)湖組件,以強化彈性能力,減少資源占用。

Trino進行運算時會同時消耗CPU與內(nèi)存。CPU直接決定查詢速度,內(nèi)存容量決定一個查詢能否成功跑出結(jié)果,對查詢速度也稍有影響。您可以根據(jù)SQL的具體情況以及業(yè)務(wù)的實際需要購買相應的集群。如果沒有特殊需求,通用型實例即可滿足日常使用。如下就是一個較為均衡的Trino集群:

節(jié)點種類與數(shù)量

單臺實例CPU核數(shù)

單臺實例內(nèi)存大小

1 Master

16核

64 GB

5 Core

16核

64 GB

Trino內(nèi)存配置建議

內(nèi)存不足是導致Trino查詢?nèi)蝿?wù)失敗的主要原因。與Trino內(nèi)存相關(guān)參數(shù)主要有(單位為GB、MB等):

  • query.max-memory-per-node

  • query.max-memory

  • query.max-total-memory-per-node(已在社區(qū)369版本移除,DataLake集群的Trino均不包含此配置)

  • query.max-total-memory

  • memory.heap-headroom-per-node

您可以通過以下方式修改這些參數(shù):

  1. 修改JVM參數(shù)。

    在進行內(nèi)存配置時,首先應修改JVM配置。

    在EMR控制臺Trino服務(wù)的配置頁面,單擊jvm.config頁簽,按照以下說明修改-Xmx后面對應的值:修改Trino組件配置

    • 對于Trino獨立集群,或是僅使用Trino服務(wù)的集群,該值可以調(diào)整為集群物理內(nèi)存的70%左右,這樣可以兼顧效率和穩(wěn)定性。

    • 集群配置較大時(例如實例內(nèi)存超過128 GB時)可以適當增大該值,但不建議過大。尤其是在存在大量Native方法請求時,應根據(jù)實際情況降低這個值,否則進程容易因內(nèi)存不足被操作系統(tǒng)終止,從而出現(xiàn)Worker重啟導致任務(wù)失敗。

    • 如果Master和Core節(jié)點的配置不同,可以分別修改節(jié)點組或單臺節(jié)點的配置。

    對于Trino集群選型建議中所列規(guī)格的集群,JVM參數(shù)可以配置為45 GB~50 GB。

  2. 配置內(nèi)存參數(shù)。

    在EMR控制臺Trino服務(wù)的配置頁面,單擊config.properties頁簽,修改對應的值。

    參數(shù)

    描述

    默認值

    建議值

    query.max-memory-per-node

    一條查詢在單臺Worker節(jié)點的用戶內(nèi)存。

    2 GB

    不大于JVM內(nèi)存與memory.heap-headroom-per-node的差值即可,即不大于70%的JVM內(nèi)存。并發(fā)高時建議適當降低。

    query.max-memory

    一條查詢在集群所有節(jié)點上的總用戶內(nèi)存。

    4 GB

    query.max-memory-per-node * Worker數(shù)。

    query.max-total-memory

    一條查詢在集群上消耗的總內(nèi)存,應該高于或等于query.max-memory的值。

    6 GB

    并發(fā)不高時,配置為與query.max-memory相等即可;并發(fā)較高時,query.max-total-memory不能超過集群的最大內(nèi)存容量,即70%的JVM內(nèi)存 * Worker數(shù)。應根據(jù)需求按比例同步降低query.max-memoryquery.max-memory-per-node的值,query.max-memory最多可降低到query.max-total-memory的二分之一,此時query.max-memory-per-node相應調(diào)整為query.max-memory/Worker數(shù)。

    memory.heap-headroom-per-node

    預留的JVM堆內(nèi)存。

    30%的JVM內(nèi)存

    無特殊需求不建議修改。

    其中,對于query.max-memory-per-nodememory.heap-headroom-per-node參數(shù),每個節(jié)點可以單獨配置;query.max-memoryquery.max-total-memory全集群建議保持一致。

    對于Trino集群選型建議中所列規(guī)格的集群,query.max-memory-per-node可以設(shè)置為30 GB~35 GB,query.max-memoryquery.max-total-memory則相應為150 GB~165 GB。如果經(jīng)常遇到查詢執(zhí)行過程中Worker停止服務(wù)的情況,可以嘗試逐漸減小query.max-memory-per-node的值。

  3. 配置保存并部署后,重啟所有節(jié)點服務(wù),使得內(nèi)存配置生效。

其他相關(guān)配置

如果想要對單個查詢使用的資源進行限制,可以使用資源組功能,詳情請參見Resource groups

如果查詢速度慢,可嘗試修改task.concurrency的值來調(diào)整并發(fā)數(shù),更多參數(shù)請參見Task properties