下载安装包
去官网下载对应安装包https://prestodb.io/download.html
- presto-server-0.271.tar.gz
- presto-cli-0.271-executable.jar
- presto-jdbc-0.271.jar
解压
tar -zxvf presto-server-0.271.tar.gz
设置配置文件
- 在安装目录创建一个etc和data目录
mkdir /opt/xxx/presto-server-0.271/etc
mkdir /opt/xxx/presto-server-0.271/data
- 创建配置文件node.properties
vim /opt/xxx/presto-server-0.271/etc/node.properties
加入如下配置
node.environment=production
node.id=presto1
node.data-dir=/opt/xxx/presto-server-0.271/data
- 创建配置文件jvm.config
vim /opt/xxx/presto-server-0.271/etc/jvm.config
加入如下配置
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
- 创建配置文件config.properties
vim /opt/xxx/presto-server-0.271/etc/config.properties
加入如下配置
coordinator=true 允许此Presto实例充当协调器(接受来自客户端的查询并管理查询执行)。
node-scheduler.include-coordinator=true 是否允许在coordinator服务中进行调度工作, 对于大型的集群,在一个节点上的Presto server即作为coordinator又作为worke将会降低查询性能。因为如果一个服务器作为worker使用,那么大部分的资源都会被worker占用,那么就不会有足够的资源进行关键任务调度、管理和监控查询执行(集群模式的话如果coordinator=true,则此参数一般设为false )。
http-server.http.port=18080 指定HTTP服务器的端口。Presto使用HTTP进行内部和外部的所有通信。
query.max-memory=5GB 查询可能使用的最大分布式内存量。
query.max-memory-per-node=1GB 查询可在任何一台计算机上使用的最大用户内存量。
query.max-total-memory-per-node=2GB 查询可在任何一台计算机上使用的最大用户和系统内存量,其中系统内存是读取器,写入程序和网络缓冲区等执行期间使用的内存。
discovery-server.enabled=true 查询可在任何一台计算机上使用的最大用户和系统内存量,其中系统内存是读取器,写入程序和网络缓冲区等执行期间使用的内存。
discovery.uri=http://192.168.88.101:18080 服务器的URI。因为我们在Presto协调器中启用了Discovery的嵌入式版本,所以它应该是Presto协调器的URI。替换example.net:8080以匹配Presto协调器的主机和端口。此URI不得以斜杠结尾。
- 创建配置文件log.properties
vim /opt/xxx/presto-server-0.271/etc/log.properties
加入如下配置
com.facebook.presto = INFO 共四个级别DEBUG,INFO,WARN和ERROR。
- 创建目录cacalog且设置配置文件
mkdir /opt/xxx/presto-server-0.271/etc/cacalog
vim /opt/xxx/presto-server-0.271/etc/cacalog/hive.properties
加入配置
connector.name=hive-hadoop2
hive.metastore.uri=thrift://node01:9083
hive.config.resources=/opt/xxx/hadoop-3.1.2/etc/hadoop/core-site.xml,/opt/xxx/hadoop-3.1.2/etc/hadoop/hdfs-site.xml
运行
运行前需要hive启动metastore
hive --service metastore
sh /opt/xxx/presto-server-0.271/bin/launcher start
在次目录下查看对应日志/opt/xxx/presto-server-0.271/data/var/log
客户端连接
- 修改jar包presto-cli-0.271-executable.jar的权限
chmod +x presto-cli-0.271-executable.jar
- 连接
./presto-cli-0.271-executable.jar --server 192.168.88.101:18080 --catalog hive --schema default
DataGrip中jdbc连接
- 设置Drivers
- 连接
集群
-
把单节点的presto-server-0.271文件夹拷贝到其他节点
scp -r /opt/xxx/presto-server-0.271 root@node02:/opt/xxx
scp -r /opt/xxx/presto-server-0.271 root@node03:/opt/xxx
-
修改node02和node03对应的配置文件
修改config.properties为以下内容coordinator=false http-server.http.port=18080 query.max-memory=5GB query.max-memory-per-node=1GB query.max-total-memory-per-node=2GB discovery.uri=http://192.168.88.101:18080
修改node.properties中以下内容
node.id=presto2/presto3 每个节点的id需要不一样
-
启动
分别启动每个节点bin/launcher start
-
验证
在wei-ui中可以查看运行的worker数(我的node01为协调器,node02和node03为worker)