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