1. 下载
官网地址:https://trino.io/download
2. 解压
tar -zxvf trino-server-361.tar.gz -C /usr/local/trino
3. 生成配置
在安装目录中创建一个目录 etc , 加入以下配置:
(1) 节点属性:特定于每个节点的环境配置 — etc/node.properties
(2) JVM Config:Java虚拟机的命令行选项 — etc/jvm.config
(3) 配置属性:Presto服务器的配置 — etc/config.properties
(4) 日志级别配置文件 — etc/log.properties
(5) 目录属性:连接器(数据源)的配置
3.1. 节点属性
包含特定于每个节点的配置:
属性 | 解释 |
---|---|
node.environment | 环境的名称。群集中的所有Presto节点必须具有相同的环境名称。 |
node.id | 此Presto安装的唯一标识符。对于每个节点,这必须是唯一的。在重新启动或升级Presto时,此标识符应保持一致。如果在一台计算机上运行多个Presto安装(即同一台计算机上的多个节点),则每个安装必须具有唯一标识符。 |
node.data-dir | 数据目录的位置(文件系统路径)。Presto将在此处存储日志和其他数据。 |
先 touch 一个 /etc/node.properties
然后复制配置进去:
node.environment=production
node.id=trino1
node.data-dir=/opt/presto/data
3.2. JVM Config
包含用于启动Java虚拟机的命令行选项列表。该文件的格式是一个选项列表,每行一个。shell不会解释这些选项,因此不应引用包含空格或其他特殊字符的选项。
touch etc/jvm.config
加入以下配置:
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
3.3. 配置属性
包含Presto服务器的配置。每个Presto服务器都可以充当协调器和工作器,但是专用一台机器来执行协调工作可以在更大的集群上提供最佳性能。
现在自己测试,不考虑性能。为方便起见,只用单节点,即当coordinator 也当worker。
将以下配置复制加入新建的config.properties
(8080端口容易起冲突,修改为了3380)
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=3380
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://127.0.0.1:3380
(修改为自己的ip或主机名和对应端口)
属性解释如下:
coordinator:允许此Presto实例充当协调器(接受来自客户端的查询并管理查询执行。
node-scheduler.include-coordinator:允许在协调器上安排工作。对于较大的集群,协调器上的处理工作可能会影响查询性能,因为计算机的资源不可用于调度,管理和监视查询执行的关键任务。
http-server.http.port:指定HTTP服务器的端口。Presto使用HTTP进行内部和外部的所有通信。
query.max-memory:查询可能使用的最大分布式内存量。
query.max-memory-per-node:查询可在任何一台计算机上使用的最大用户内存量。
query.max-total-memory-per-node:查询可在任何一台计算机上使用的最大用户和系统内存量,其中系统内存是读取器,写入程序和网络缓冲区等执行期间使用的内存。
discovery-server.enabled:Presto使用Discovery服务查找群集中的所有节点。每个Presto实例都会在启动时使用Discovery服务注册自己。为了简化部署并避免运行其他服务,Presto协调器可以运行Discovery服务的嵌入式版本。它与Presto共享HTTP服务器,因此使用相同的端口。
discovery.uri:Discovery服务器的URI。因为我们在Presto协调器中启用了Discovery的嵌入式版本,所以它应该是Presto协调器的URI。替换example.net:8080以匹配Presto协调器的主机和端口。此URI不得以斜杠结尾。
如果想按分布式搭建,请参考官网,修改配置:
附上链接:
https://prestodb.github.io/docs/current/installation/deployment.html
3.4. 日志级别配置文件
允许为命名的记录器层次结构设置最小日志级别。每个记录器都有一个名称,通常是使用记录器的类的完全限定名称。记录器具有基于名称中的点的层次结构(如Java包)。例如,请考虑以下日志级别文件:
在 etc/log.properties 中加入以下配置
com.facebook.presto = INFO
这将 com.facebook.presto.server 和 com.facebook.presto.hive 设置为最低级别。默认的最低级别是INFO (因此上面的示例实际上并没有改变任何东西)。共有四个级别:DEBUG,INFO,WARN和ERROR。
3.5. 目录属性
通过在目录中创建目录属性文件来注册 etc/catalog 目录。
touch etc/catalog/clickhouse.properties
指定为Mysql数据库
connector.name=mysql
connection-url=jdbc:mysql://127.0.0.1:3306
connection-user=root
connection-password=123456
4. 开始运行
安装目录包含启动器脚本 bin/launcher。可以通过运行以下命令将Presto作为守护程序启动:
bin/launcher start
启动后,您可以在 var/log 以下位置找到日志文件:
日志 | 解释 |
---|---|
launcher.log | 此日志由启动程序创建,并连接到服务器的stdout和stderr流。它将包含初始化服务器日志记录时发生的一些日志消息以及JVM生成的任何错误或诊断信息。 |
server.log | 这是Presto使用的主日志文件。如果服务器在初始化期间出现故障,它通常会包含相关信息。它会自动旋转和压缩。 |
http-request.log | 这是HTTP请求日志,其中包含服务器收到的每个HTTP请求。它会自动旋转和压缩。 |
5. 命令行界面
Presto CLI提供了一个基于终端的交互式shell,用于运行查询。CLI是一个 自动执行的 JAR文件,这意味着它的行为类似于普通的UNIX可执行文件。
将 trino-cli-362-executable.jar 重命名为 trino
增加执行权限,并绑定调度器端口
mv trino-cli-362-executable.jar trino
chmod +x trino
./trino --server 127.0.0.1:3380
进入终端后:
#查看数据源
show catalogs;
#选择presto_db数据库
use “clickhouse-lianshe”.presto_db;
#查看所有表
show tables;
#查询某张表前十条记录
select * from ytdk limit 10;
参考文档:https://blog.csdn.net/weixin_41008393/article/details/90269228