部署 Presto 路由器¶
安裝路由器¶
下載 Presto 路由器 tarball,presto-router-0.289.tar.gz,並解壓縮它。 tarball 將包含一個單一的頂層目錄 presto-router-0.289
,我們將其稱為安裝目錄。
路由器需要一個資料目錄來儲存日誌等。 我們建議在安裝目錄之外建立一個資料目錄,這樣可以在升級 Presto 時輕鬆保存它。
設定路由器¶
在安裝目錄內建立一個 etc
目錄。 與安裝 Presto 類似,這將保存以下設定
節點屬性:每個節點特定的環境設定
JVM 設定:Java 虛擬機的命令行選項
設定屬性:Presto 路由器的設定
路由器屬性:執行路由器的設定和規則
節點屬性¶
節點屬性檔案 etc/node.properties
,與主要的 Presto 伺服器共享相同的設定。 詳細資訊可在 部署 Presto 中找到。
JVM 設定¶
JVM 設定檔案 etc/jvm.config
,包含用於啟動 Java 虛擬機的命令行選項列表。
以下提供 etc/jvm.config
的範例。
-ea
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-Xmx12G
設定屬性¶
設定屬性檔案 etc/config.properties
,包含 Presto 路由器網路服務的設定。
以下提供 etc/config.properties
的範例。
http-server.http.port=8080
http-server.log.max-history=3
http-server.log.max-size=500MB
router.config-file=etc/router-config.json
如果需要 Kerberos 驗證,請新增以下設定
query-tracker.http-client.authentication.enabled=true
query-tracker.http-client.authentication.krb5.name-type=USER_NAME
query-tracker.http-client.authentication.krb5.principal=presto@REMOTE.BIZ
query-tracker.http-client.authentication.krb5.remote-service-name=HTTP/PRESTO@REMOTE.BIZ
query-tracker.http-client.authentication.krb5.service-principal-pattern=PATTERN
路由器屬性¶
路由器屬性包含一些執行路由器的特定規則。
以下提供 etc/router-config.json
的範例。
{
"groups": [
{
"name": "all",
"members": ["http://127.0.0.1:61381", "http://127.0.0.1:61382"],
"weights": [1, 5]
}
],
"selectors": [
{
"targetGroup": "all"
}
],
"scheduler": "RANDOM_CHOICE",
"predictor": "http://127.0.0.1:8000/v1"
}
這些屬性需要一些解釋
groups
:Presto 叢集的群組。每個群組都包含必要的name
和必要的members
。每個群組也可能包含成員的可選weights
欄位。權重用於某些與權重相關的排程演算法,例如加權隨機選擇。selectors
:用於選擇特定 Presto 叢集的選擇器。允許source
、user
、clientTags
和targetGroup
。scheduler
:路由器服務中使用的排程器類型。詳細資訊請參閱 路由器排程器。預設值為 *RANDOM_CHOICE*。predictor
:查詢預測器的可選 URI。路由器使用 URI 從預測器中獲取查詢資源使用資訊以進行排程。預設值為 *http://127.0.0.1:8000/v1*。
執行路由器¶
安裝目錄在 bin/launcher
中包含啟動器腳本。 可以透過執行以下命令將路由器作為守護程式啟動
bin/launcher start
或者,它可以在前台執行,日誌和其他輸出會寫入 stdout/stderr (如果使用像 daemontools 這樣的監管系統,則應捕獲這兩個串流)
bin/launcher run