阅读更多
1 核心概念
组件类型:
Coordinator
:- 解析sql
- 生成查询计划
- 管理并调度
Worker
。同时,其自身也可作为Worker
Worker
- 从
Connector
中获取数据,并按照执行计划进行计算
- 从
2 部署
一个Presto
集群至少包含一个Coordinator
和一个Worker
,其中Coordinator
可以同时作为Coordinator
和Worker
(生产环境最好不要这样做)
2.1 配置简介
Presto
配置相关的目录结构如下:
etc/catalog
:各个Connector
的配置,可以参考Connectorsconfig.properties
:核心配置jvm.config
:Java虚拟机相关的配置log.properties
:日志相关的配置node.properties
:节点元数据相关的配置
1 | etc |
2.2 部署Coordinator
2.2.1 config.properties
coordinator
:必须为true
node-scheduler.include-coordinator
:true
表示该Coordinator
同时也作为Worker
,单节点的Presto
集群或者测试环境可以配置成true
http-server.http.port
:监听的http
端口,用于节点间交互discovery-server.enabled
:true
表示当前节点作为服务发现的server
discovery.uri
:服务发现的server
的uri
,一般情况下,用Coordinator
作为server
,因此,uri
通常为http://<coordinator_host>:<coordinator_http-server.http.port>
1 | coordinator=true |
2.2.2 jvm.config
Java虚拟机的配置
1 | -server |
2.2.3 log.properties
一般用于配置日志级别
1 | com.facebook.presto=INFO |
2.2.4 node.properties
node.id
:每个机器得不一样node.data-dir
:数据目录,包括日志以及运行时数据
1 | node.environment=production |
2.3 部署Worker
2.3.1 config.properties
coordinator
:必须为falsehttp-server.http.port
:监听的http
端口,用于节点间交互discovery.uri
:服务发现的server
的uri
,一般情况下,用Coordinator
作为server
,因此,uri
通常为http://<coordinator_host>:<coordinator_http-server.http.port>
1 | coordinator=false |
2.3.2 jvm.config
Java虚拟机的配置
1 | -server |
2.3.3 log.properties
一般用于配置日志级别
1 | com.facebook.presto=INFO |
2.3.4 node.properties
node.id
:每个机器得不一样node.data-dir
:数据目录,包括日志以及运行时数据
1 | node.environment=production |
2.4 控制台
直接浏览器访问<coordinator.ip>:<http-server.http.port>
即可
2.5 命令行客户端
- 下载最新的
presto-cli-x.xxx-executable.jar
,该jar
包可以直接运行 - 将其重命名为
presto
:mv presto-cli-x.xxx-executable.jar presto
./presto --server <coordinator.ip>:<http-server.http.port> --catalog mysql --schema tpch
--catalog
指定connector
类型--schema
指定database