PRESTO安装配置
PRESTO server 下载地址:
https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.212/presto-server-0.212.tar.gz
PRESTO client 下载地址:
https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.212/presto-cli-0.212-executable.jar
一、解压及环境变量配置
重要说明
官方建议在安装目录外单独新建目录用于存储日志等其它数据,所以我们新建一级目录presto,在其下新建二级目录data用于日志存储,安装包在一级目录presto下解压安装配置。官方原文如下:
Presto needs a data directory for storing logs, etc. We recommend
creating a data directory outside of the installation directory,
which allows it to be easily preserved when upgrading Presto.
解压
tar -zxvf ./presto-server-0.211.tar.gz
ln -s ./presto-server-0.211 server #server为presto server主目录
环境变量配置
vi /etc/profile
增加如下内容:
export PRESTO_HOME=/soft/presto/server
export PATH=$PATH:$PRESTO_HOME/bin
刷新一下
source /etc/profile
目录结构如下
-presto
--data
--presto-server-0.211
二、presto配置
重要说明
需配置以下信息:
a) Node Properties: environmental configuration specific to each node
配置每个节点的环境信息
b) JVM Config: command line options for the Java Virtual Machine
配置JVM相关参数
c) Config Properties: configuration for the Presto server
配置Presto相关信息
d) Catalog Properties: configuration for Connectors (data sources)
配置可访问数据的数据源
1.进入$PRESTO_HOME,新建配置目录etc
cd $PRESTO_HOME
mkdir etc
2.配置 Node Properties
2.1 vim node.properties
2.2 配置如下内容:
coordinator:
node.environment=production
node.id=每个Presto节点的唯一标识
node.data-dir=/soft/presto/data
其它worker【XX为72~75】:
node.environment=production
node.id=每个Presto节点的唯一标识
node.data-dir=/soft/presto/data
2.3 参数说明
node.environment: 配置环境名,presto集群中所有节点必须配置相同的环境名
node.id: 每个节点的唯一标识
node.data-dir: 存储日志等其它数据的目录
3.配置 JVM Config
3.1 vim jvm.config
3.2 配置如下内容:
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
4.配置 Config Properties
4.1 vim config.properties
4.2 配置如下内容:
coordinator(接受来自客户端的查询并管理查询的执行):
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=34445
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery-server.enabled=true
discovery.uri=http://hadoopmaster:34445
其它worker(调度、管理和监视查询执行的关键任务):
coordinator=false
http-server.http.port=34445
query.max-memory=50GB
query.max-memory-per-node=1GB
query.max-total-memory-per-node=2GB
discovery.uri=http://hadoopmaster:34445
4.3 参数说明
coordinator: 是否是coordinator节点
node-scheduler.include-coordinator: 是否允许coordinator节点调度
http-server.http.port: 使用HTTP通信的端口
query.max-memory: 集群可使用的最大分布式内存(集群内存总和)
query.max-memory-per-node: 集群用户在单个节点可使用的最大内存
query.max-total-memory-per-node: 单个节点可使用的最大内存(用户和系统可用内存)
discovery-server.enabled: presto通过发现"发现服务"寻找及群众所有节点,每个presto实例在启动时通过"发现服务"进行注册,为了简化安装,coordinator内嵌"发现服务"。它与Presto server共享HTTP服务器,因此使用相同的端口。
discovery.uri: "发现服务"的uri ,同时也是presto coordinator的uri。不能以斜线结尾。
5.配置 Catalog Properties
支持如下Connectors(https://prestodb.io/docs/current/connector.html):
5.1. Accumulo Connector
5.2. Black Hole Connector
5.3. Cassandra Connector
5.4. Hive Connector
5.5. Hive Security Configuration
5.6. JMX Connector
5.7. Kafka Connector
5.8. Kafka Connector Tutorial
5.9. Kudu Connector
5.10. Local File Connector
5.11. Memory Connector
5.12. MongoDB Connector
5.13. MySQL Connector
5.14. PostgreSQL Connector
5.15. Redis Connector
5.16. Redshift Connector
5.17. SQL Server Connector
5.18. System Connector
5.19. Thrift Connector
5.20. TPCDS Connector
5.21. TPCH Connector
新建目录$PRESTO_HOME/etc/catalog
mkdir catalog
5.1 通过presto访问Hive
vim catalog/hive.properties
connector.name=hive-hadoop2
hive.metastore.uri=thrift://hadoopmaster:9083
5.2 通过presto访问Mysql
vim catalog/mysql.properties
connector.name=mysql
connection-url=jdbc:mysql://example.net:3306
connection-user=用户名
connection-password=密码
三、presto启动
3.1 后台启动
$PRESTO_HOME/bin/launcher start
3.2 前台启动
$PRESTO_HOME/bin/launcher run
四、presto cli测试
4.1 增加执行权限
chmod +x ./presto-cli-0.211-executable.jar
查看帮助
./presto-cli-0.211-executable.jar --help
运行
./presto-cli-0.211-executable.jar --server localhost:34445 --catalog hive --schema default
./presto-cli-0.211-executable.jar --server localhost:34445 --catalog mysql --schema test
命令帮助
presto> help
相关样例
show tables from hive.test;