https://hub.docker.com/r/trinodb/trino
https://trino.io/
docker run -itd -p 8080:8080 --name trino --restart=always -v /etc/localtime:/etc/localtime:ro -v /data/file:/data/file/ -v /data/docker/mysql/trino:/etc/trino:ro --privileged=true --user=root trinodb/trino
-Trino CLI, localhost:8080 # 默认账号:admin,无密码
docker cp trino:/etc/trino/ /data/docker/mysql/
docker exec -it trino trino
-参数
docker exec -it trino trino --catalog tpch --schema sf1
-可以查看此时有哪些数据源
show catalogs;
-查看集群中的节点
SELECT * FROM system.runtime.nodes;
-TPCH连接器的查询
SELECT * FROM tpch.tiny.region;
docker exec -it trino /bin/bash
yum check-update
yum update -y
yum clean all
yum -y install --skip-broken epel-release yum-axelget vim net-tools unzip zip wget lsof curl
find / -name trino
/etc/trino
/var/spool/mail/trino
/home/trino
/usr/bin/trino
/usr/lib/trino
/data/trino
# Presto 命令行工具: https://repo1.maven.org/maven2/io/trino/trino-cli/361/
cd /opt
wget https://repo1.maven.org/maven2/io/trino/trino-cli/361/trino-cli-361-executable.jar
mv trino-cli-361-executable.jar trino
chmod +x trino
#连接presto,8080端口跟config.properties配置文件中端口对应
./trino --server 127.0.0.1:8080 --catalog mysql
# mysql查询
-可用的MySQL数据库
SHOW SCHEMAS FROM mysql;
-库的所有表
SHOW TABLES FROM mysql.dbeduboo;
-单表结构
DESCRIBE mysql.dbeduboo.md_books;
or
SHOW COLUMNS FROM mysql.dbeduboo.md_books;
-表数据
SELECT * FROM mysql.dbeduboo.md_books;
# 不同类型数据源可以参考官网:
https://trino.io/docs/current/connector.html
vim /data/docker/mysql/trino/catalog/mysql.properties
connector.name=mysql
connection-url=jdbc:mysql://b.htmltoo.com:3306
connection-user=root
connection-password=r
# trinodb 集群部署
https://abc.htmltoo.com/thread-46286.htm
1. config.properties :Presto 服务配置
2. node.properties :环境变量配置,每个节点特定配置
3. jvm.config :Java虚拟机的命令行选项
4. log.properties: 允许你根据不同的日志结构设置不同的日志级别
5. catalog目录 :每个连接者配置(data sources)
# config.properties
1. coordinator:指定是否运维Presto实例作为一个coordinator(接收来自客户端的查询情切管理每个查询的执行过程)
2. node-scheduler.include-coordinator:是否允许在coordinator服务中进行调度工作, 对于大型的集群,在一个节点上的Presto server即作为coordinator又作为worke将会降低查询性能。因为如果一个服务器作为worker使用,那么大部分的资源都会被worker占用,那么就不会有足够的资源进行关键任务调度、管理和监控查询执行
3. http-server.http.port:指定HTTP server的端口。Presto 使用 HTTP进行内部和外部的所有通讯
4. task.max-memory=1GB:一个单独的任务使用的最大内存 (一个查询计划的某个执行部分会在一个特定的节点上执行)。 这个配置参数限制的GROUP BY语句中的Group的数目、JOIN关联中的右关联表的大小、ORDER BY语句中的行数和一个窗口函数中处理的行数。 该参数应该根据并发查询的数量和查询的复杂度进行调整。如果该参数设置的太低,很多查询将不能执行;但是如果设置的太高将会导致JVM把内存耗光
5. discovery-server.enabled:Presto 通过Discovery 服务来找到集群中所有的节点。为了能够找到集群中所有的节点,每一个Presto实例都会在启动的时候将自己注册到discovery服务。Presto为了简化部署,并且也不想再增加一个新的服务进程,Presto coordinator 可以运行一个内嵌在coordinator 里面的Discovery 服务。这个内嵌的Discovery 服务和Presto共享HTTP server并且使用同样的端口
6. discovery.uri:Discovery server的URI。由于启用了Presto coordinator内嵌的Discovery 服务,因此这个uri就是Presto coordinator的uri。注意:这个URI一定不能以“/“结尾
# node.properties
node.environment: 集群名称, 所有在同一个集群中的Presto节点必须拥有相同的集群名称
node.id: 每个Presto节点的唯一标示。每个节点的node.id都必须是唯一的。在Presto进行重启或者升级过程中每个节点的node.id必须保持不变。如果在一个节点上安装多个Presto实例(例如:在同一台机器上安装多个Presto节点),那么每个Presto节点必须拥有唯一的node.id
node.data-dir: 数据存储目录的位置(操作系统上的路径), Presto将会把日期和数据存储在这个目录下
# log.properties
配置日志等级,类似于log4j。四个等级:DEBUG,INFO,WARN,ERROR
可对250PB以上的数据进行快速地交互式分析
Trino 是一个 MPP(大规模并行处理) 架构的内存型 OLAP 引擎,注意它只是一个查询引擎,并不是一个数据库,因为 Trino 不存储数据。通过 connector 机制可以获取多种数据源的数据,比如 Trino-hive 这个 connector 就可以获取到 Hive 表的数据。
Trino 主要适用于 Adhoc 查询(即席查询),主要应用场景是数据分析,你可以根据自己的需求写 SQL,查询任何你想查询的数据(前提是你得有权限[手动狗头])。
Trino 是一个典型的 Master-Slave (主从)架构的计算框架,负责接收用户请求的是 Coordinator,干苦力活的叫 worker。
https://blog.csdn.net/weixin_33890499/article/details/89767095
https://blog.csdn.net/zheng911209/article/details/118673775
https://blog.csdn.net/zuorichongxian_/article/details/115529459