Trino 需要 64 位版本的 Java 11,最低要求版本为 11.0.11。较早的补丁版本(例如 11.0.2)不起作用,较早的主要版本(例如 Java 8)也不起作用。
官方建议使用[Azul Zulu](https://www.azul.com/downloads/zulu-community/) 作为 Trino 的 JDK,因为 Trino 已针对该发行版进行了测试。Zulu 也是[Trino Docker 镜像](https://hub.docker.com/r/trinodb/trino)使用的 JDK 。
由于公司使用的是jdk1.8 ,为避免版本更新对集群现有项目的影响,故在各台服务器中添加新的用户,在新的用户中安装jdk11,并在该用户中配置jdk11环境变量。
useradd trino
tar -zxvf zulu11.48.21-ca-jdk11.0.11-linux_x64.tar.gz
mv zulu11.45.27-ca-jdk11.0.10-linux_x64 jdk11
chown -R trino ./jdk11
vim ~/.bash_profile
export JAVA_HOME=/home/trino/jdk11
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
source ~/.bash_profile
java -version
useradd trino
tar -zxvf zulu11.48.21-ca-jdk11.0.11-linux_x64.tar.gz
chown -R trino ./zulu11.48.21-ca-jdk11.0.11-linux_x64
su trino
vim ~/.bash_profile
export JAVA_HOME=/home/presto/jdk11
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
source ~/.bash_profile
java -version
需要 64 位
首选较新版本,尤其是在容器上运行时
为运行 Trino 进程的用户提供足够的 ulimit。这些限制可能取决于您使用的特定 Linux 发行版。特定 Trino 实例所需的打开文件描述符的数量大致与集群中的机器数量成比例,乘以一些取决于工作负载的因素。我们推荐以下限制,通常可以在 中设置/etc/security/limits.conf
:
trino soft nofile 131072
trino hard nofile 131072
version 2.6.x, 2.7.x, or 3.x
required by the bin/launcher
script only
tar -zxvf trino-server-359.tar.gz
cd/home/trino/trino-server-359
mkdir etc
每个 Trino 服务器都可以充当协调器和工作器,但让一台机器只执行协调工作可以在更大的集群上提供最佳性能。
config.properties 分为协调器配置和worker 配置
以下是协调器的最小配置:
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://example.net:8080
这是worker的最低配置:
coordinator=false
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://example.net:8080
或者,如果您要设置一台用作协调器和工作器的机器进行测试,请使用以下配置:
coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://example.net:8080
这些属性需要一些解释:
coordinator
: 允许此 Trino 实例充当协调器,以便接受来自客户端的查询并管理查询执行。
node-scheduler.include-coordinator
:允许在协调器上安排工作。对于较大的集群,协调器上的处理工作会影响查询性能,因为机器的资源无法用于调度、管理和监控查询执行的关键任务。
http-server.http.port
: 指定 HTTP 服务器的端口。Trino 使用 HTTP 进行所有内部和外部通信。
query.max-memory
:查询可能使用的最大分布式内存量。
query.max-memory-per-node
:查询可以在任何一台机器上使用的最大用户内存量。
query.max-total-memory-per-node
:查询可以在任何一台机器上使用的最大用户和系统内存量,其中系统内存是读取器、写入器和网络缓冲区等在执行过程中使用的内存。
discovery.uri
:Trino 协调器有一个发现服务,所有节点都使用它来找到彼此。每个 Trino 实例在启动时向发现服务注册自己,并不断地心跳以保持其注册处于活动状态。发现服务与 Trino 共享 HTTP 服务器,因此使用相同的端口。替换example.net:8080
以匹配 Trino 协调器的主机和端口。如果您在协调器上禁用了 HTTP,则 URI 方案必须是https
,而不是http
。
-server
-Xmx16G
-XX:-UseBiasedLocking
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+ExplicitGCInvokesConcurrent
-XX:+ExitOnOutOfMemoryError
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-XX:ReservedCodeCacheSize=512M
-XX:PerMethodRecompilationCutoff=10000
-XX:PerBytecodeRecompilationCutoff=10000
-Djdk.attach.allowAttachSelf=true
-Djdk.nio.maxCachedBufferSize=2000000
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/var/trino/data
上述属性描述如下:
node.environment
: 环境名称。集群中的所有 Trino 节点必须具有相同的环境名称。名称必须以小写字母数字字符开头,并且只能包含小写字母数字或下划线 ( _
) 字符。
node.id
:此 Trino 安装的唯一标识符。这对于每个节点必须是唯一的。此标识符应在 Trino 重新启动或升级期间保持一致。如果在一台机器上运行多个 Trino 安装(即同一台机器上的多个节点),每个安装必须有一个唯一的标识符。标识符必须以字母数字字符开头,并且只能包含字母数字-
、 或_
字符。
node.data-dir
:数据目录的位置(文件系统路径)。Trino 在这里存储日志和其他数据。
io.trino=INFO
这将最低级别设置为INFO
两个 io.trino.server
和io.trino.plugin.hive
。默认的最低级别是INFO
,因此上面的例子实际上并没有改变任何东西。共有四个级别:DEBUG
,INFO
,WARN
和ERROR
。
mkdir etc/catalog
cd etc/catalog
vim phoenix.properties
connector.name=phoenix
phoenix.connection-url=jdbc:phoenix:host1,host2,host3:2181:/hbase
phoenix.config.resources=/path/to/hbase-site.xml
Hadoop 资源文件的可选路径,例如hbase-site.xml
用于加载自定义 Phoenix 客户端连接属性。
对于 HBase 2.x 和 Phoenix 5.x(5.1.0 或更高版本),请使用:
connector.name=phoenix5
bin/launcher run
将jar包添加到dbeaver驱动中
以下是用于创建连接的JDBC URL示例:
jdbc:trino://example.net:8080/phoenix/dw
附:
https://trino.io/docs/current/installation/jdbc.html?highlight=jdbc
https://trino.io/docs/current/overview.html