Presto Routerのデプロイ¶
Routerのインストール¶
Presto Routerのtarball、presto-router-0.289.tar.gzをダウンロードして展開します。tarballには、トップレベルディレクトリが1つ含まれています。 presto-router-0.289
、これを *インストール* ディレクトリと呼びます。
Routerは、ログなどを保存するための *データ* ディレクトリが必要です。インストールディレクトリの外部にデータディレクトリを作成することをお勧めします。これにより、Prestoをアップグレードするときに簡単に保存できます。
Routerの設定¶
インストールディレクトリ内にetc
ディレクトリを作成します。Prestoのインストールと同様に、これには次の設定が含まれます。
ノードプロパティ:各ノードに固有の環境設定
JVM設定:Java仮想マシンのコマンドラインオプション
設定プロパティ:Presto Routerの設定
Routerプロパティ:Routerを実行するための設定とルール
ノードプロパティ¶
ノードプロパティファイル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 Router Webサービスの設定が含まれています。
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
Routerプロパティ¶
Routerプロパティには、Routerを実行するための特定のルールが含まれています。
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
:Routerサービスで使用されるスケジューラのタイプ。詳細は、Routerスケジューラを参照してください。デフォルトは*RANDOM_CHOICE*です。predictor
:クエリ予測子のオプションのURI。 Routerは、スケジューリングのために予測子からクエリリソース使用量情報を取得するためにURIを使用します。デフォルトは*http://127.0.0.1:8000/v1*です。
Routerの実行¶
インストールディレクトリには、bin/launcher
にランチャースクリプトが含まれています。Routerは、次を実行することによりデーモンとして起動できます。
bin/launcher start
または、フォアグラウンドで実行することもできます。ログとその他の出力はstdout / stderrに書き込まれます(daemontoolsなどの監視システムを使用する場合は、両方のストリームをキャプチャする必要があります)。
bin/launcher run