![1af879dd7921c0820e6c17712f55adaa.png](https://img-blog.csdnimg.cn/img_convert/1af879dd7921c0820e6c17712f55adaa.png)
Presto架构
![de045c5dcd5337a98586acb40a52a12c.png](https://img-blog.csdnimg.cn/img_convert/de045c5dcd5337a98586acb40a52a12c.png)
以下按照的架构如图上图所示:
- 用户通过浏览器访问nginx暴露出来的地址和端口。nginx开启了用户认证的功能,此时需要输入用户和密码
- nginx收到请求,并解析用户密码与用户体系中设置的用户密码匹配。如果匹配上会把用户名写入的请求头中并把请求转发给yanagishima,否则登陆被拒绝。
- yanagishima接收ngxin转发过来的请求。
- yanagishima会把查询语句发给presto,并且会带着用户填入的用户名。
- 在查询之前会用用户名鉴权,查看用户是否用sql对应的权限。如果有则可以继续查询,否则拒绝请求。
Presto安装
coordinator节点安装(Master)
下载解压
# presto-server下载
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.223/presto-server-0.223.tar.gz
tar zxf presto-server-0.223.tar.gz
mv presto-server-0.223 /myself/servers/
ln -s /myself/servers/presto-server-0.223/ /myself/servers/presto
# presto-cli下载
wget https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.223/presto-cli-0.223-executable.jar
mv presto-cli-0.223-executable.jar presto
chmod +x presto
mv presto /myself/servers/presto/bin/
配置文件修改
创建配置文件夹
cd /myself/servers/presto
mkdir etc
cd etc/
node.properties
vim node.properties
node.environment=pro
node.id=master # 每个节点的node.id需要不同,可以更具host或者ip进行配置
node.data-dir=/myself/data/presto
jvm.config
vim jvm.config
-server
-Xmx24G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
config.properties
vim config.properties
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=2001
query.max-memory=144GB
query.max-memory-per-node=8GB
query.max-total-memory-per-node=16GB
discovery-server.enabled=true
discovery.uri=http://master:2001
log.properties
vim log.properties
com.facebook.presto = WARN