部署 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 路由器 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/[email protected]
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