一、环境准备
presto环境节点规划:
10.21.58.94(coordinator服务)
10.21.58.95(worker服务)
10.21.58.96(worker服务)
presto下载并解压:
部署的presto版本为0.223.1,下载路径为 /opt/bigdata/app/
下载地址:https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.223.1/presto-server-0.223.1.jar
二、部署流程
2.1 配置presto
在presto解压路径下新建 etc/ 目录,配置如下文件:
- config.properties:配置presto服务,配置成cooridinator服务还是worker服务。
- node.properties:配置指定节点的环境属性。
- jvm.properties:配置java虚拟机环境相关参数。
- catalog属性:配置数据连接源。
- log.properties:配置log相关属性。
2.2 coordinator服务配置
config.properties配置
# cat config.properties coordinator=true node-scheduler.include-coordinator=false http-server.http.port=8088 query.max-memory=100GB query.max-memory-per-node=10GB query.max-total-memory-per-node=20GB discovery-server.enabled=true discovery.uri=http://10.21.58.94:8088
参数含义:
- coordinator=true:是否启用coordinator服务
- node-scheduler.include-coordinator=false:在coordinator服务节点是否启用worker服务,true表示coordinator服务和worker服务混部
- http-server.http.port=8088:http服务的端口
- query.max-memory=100GB:整个presto集群查询的最大数据量
- query.max-memory-per-node=10GB:单个woker节点单个task查询的数据量
- query.max-total-memory-per-node=20GB:单个worker节点查询的最大数据量
- discovery-server.enabled=true:是否开启discover服务,用于其它worker访问
- discovery.uri:discovery服务的web uri地址
node.properties配置
# cat node.properties node.environment=production node.id=10-21-58-94 node.data-dir=/data/presto/
参数含义:
- node.environment=production:worker节点的环境类型(coordinator服务所在节点没有启用worker服务,所以这个配置文件作用不大)
- node.id=10-21-58-94:worker节点的id
- node.data-dir=/data/presto/:worker节点服务的日志目录
jvm.config配置
# cat jvm.config -server -Xmx64G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError
log.properties配置
# cat log.properties com.facebook.presto=DEBUG
2.3 worker服务配置
# cat config.properties coordinator=false http-server.http.port=8088 query.max-memory=100GB query.max-memory-per-node=10GB query.max-total-memory-per-node=20GB discovery.uri=http://10.21.58.94:8088 # cat node.properties node.environment=production node.id=10-21-58-95 node.data-dir=/data/presto/ # cat jvm.config -server -Xmx64G -XX:+UseG1GC -XX:G1HeapRegionSize=32M -XX:+UseGCOverheadLimit -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:+ExitOnOutOfMemoryError # cat catalog/hive.properties connector.name=hive-hadoop2 hive.metastore.uri=thrift://10.21.58.94:9083 hive.config.resources=/opt/bigdata/app/presto/etc/hadoop-conf/core-site.xml,/opt/bigdata/app/presto/etc/hadoop-conf/hdfs-site.xml hive.security=read-only hive.hdfs.authentication.type=NONE hive.hdfs.impersonation.enabled=true # cat log.properties com.facebook.presto=DEBUG
2.4 catalog连接器配置
环境连接的是hive数据源,配置方式见2.2小节和2.3小节的 catalog/hive.properties 配置。
2.5 验证
打开web ui地址 10.21.58.94:8088,出现如下页面则说明配置成功。
三、命令行访问
下载presto客户端执行jar包 https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.223.1/presto-cli-0.223.1-executable.jar。
重命名jar包名为 presto,并添加可执行属性 chmod +x presto,通过如下方式访问:
/opt/bigdata/presto-cli/presto --server 10.21.58.94:8088 --catalog hive --schema default --user 11085245 --debug
【参考链接】
[1] https://prestodb.io/docs/current/installation/deployment.html.