系统环境:hadoop + hive已经配置完成

1、下载presto:https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.167/presto-server-0.167.tar.gz

2、解压安装

#   tar -zxvf presto-server-0.167.tar.gz -C /usr/local/

/usr/local/presto-server-0.167则为安装目录,另外Presto还需要数据目录,数据目录最好不要在安装目录里面,方便后面Presto的版本升级。

3、配置presto

在安装目录里创建etc目录。这目录会有以下配置(自己创建):

    结点属性(Node Properties):每个结点的环境配置

    JVM配置(JVM Config):Java虚拟机的命令行选项

    配置属性(Config Properties):Persto server的配置

    Catelog属性(Catalog Properties):配置Connector(数据源)

 

(1)结点属性(Node Properties)

       结点属性文件etc/node.properties,包含每个结点的配置。一个结点是一个Presto实例。这文件一般是在Presto第一次安装时创建的。以下是最小配置:

node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/var/presto/data

解释:

node.environment: 环境名字,Presto集群中的结点的环境名字都必须是一样的。

node.id: 唯一标识,每个结点的标识都必须是为一的。就算重启或升级Presto都必须还保持原来的标识。

node.data-dir: 数据目录,Presto用它来保存log和其他数据

eg:

node.environment=production
node.id=master-presto-coordinator
node.data-dir=/usr/local/presto-server-0.167/data             #data需要自己手动创建

presto部署架构 presto安装部署_JVM

 

(2)JVM配置(JVM Config)

         JVM配置文件etc/jvm.config,包含启动Java虚拟机时的命令行选项。格式是每一行是一个命令行选项。此文件数据是由shell解析,所以选项中包含空格或特殊字符会被忽略。 

         以下是参考配置:

-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError

备注:以上参数都是官网参数,实际环境需要调整

(3)配置属性(Config Properties)

        配置属性文件etc/config.properties,包含Presto server的配置。Presto server可以同时为coordinator和worker,但一个大集群里最好就是只指定一台机器为coordinator。

        以下是coordinator的最小配置:

coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://example.net:8080

以下是worker的最小配置:

coordinator=false
http-server.http.port=8080
query.max-memory=50GB
query.max-memory-per-node=1GB
discovery.uri=http://example.net:8080

如果适用于测试目的,需要将一台机器同时配置为coordinator和worker,则使用以下配置:

coordinator=true
node-scheduler.include-coordinator=true
http-server.http.port=8080
query.max-memory=5GB
query.max-memory-per-node=1GB
discovery-server.enabled=true
discovery.uri=http://example.net:8080

 解释:

coordinator: 是否运行该实例为coordinator(接受client的查询和管理查询执行)。
node-scheduler.include-coordinator:coordinator是否也作为work。对于大型集群来说,在coordinator里做worker的工作会影响查询性能。
http-server.http.port:指定HTTP端口。Presto使用HTTP来与外部和内部进行交流。
query.max-memory: 查询能用到的最大总内存
query.max-memory-per-node: 查询能用到的最大单结点内存
discovery-server.enabled: Presto使用Discovery服务去找到集群中的所有结点。每个Presto实例在启动时都会在Discovery服务里注册。这样可以简化部署,不需要额外的服务,Presto的coordinator内置一个Discovery服务。也是使用HTTP端口。
discovery.uri: Discovery服务的URI。将example.net:8080替换为coordinator的host和端口。这个URI不能以斜杠结尾,这个错误需特别注意,不然会报404错误。

另外还有以下属性:
jmx.rmiregistry.port: 指定JMX RMI的注册。JMX client可以连接此端口
jmx.rmiserver.port: 指定JXM RMI的服务器。可通过JMX监听。

eg:server配置

coordinator=true 
node-scheduler.include-coordinator=false
datasources=jmx,hive
http-server.http.port=8880
query.max-memory=1GB     
query.max-memory-per-node=512MB
discovery-server.enabled=true 
discovery.uri=http://172.20.1.1:8880

presto部署架构 presto安装部署_结点_02

client配置

coordinator=false 
http-server.http.port=8880
query.max-memory=1GB     
query.max-memory-per-node=512MB
discovery-server.enabled = true
discovery.uri=http://172.20.1.1:8880

presto部署架构 presto安装部署_presto部署架构_03

(4)日志级别

创建文件log.properties
填入内容:
com.facebook.presto=INFO
备注:日志级别有四种,DEBUG, INFO, WARN and ERROR

(5)连接设置

这里只说一下hive的,其实官网写的很清楚,如果有用到其他的,可以点一下官网连接:https://prestodb.io/docs/current/connector.html
hive connector配置如下:
  a、创建存放链接配置文件的文件夹,在之前etc目录下创建catalog
  b、放入一个jmx的配置文件,jmx.properties,配置内容:connector.name=jmx (通过jmx管理connector)
  c、配置一个hive connector的配制文件,hive.properties,内容如下:

在etc目录下创建catalog目录

#  mkdir catalog
# cd catalog
# touch hive.properties
connector.name=hive-hadoop2                  #取个连接名
hive.metastore.uri=thrift://172.20.1.1:9083     #配置metastore连接
hive.config.resources=/usr/local/hadoop-2.9.1/conf/core-site.xml,/usr/local/hadoop-2.9.1/conf/hdfs-site.xml    #指明hadoop的配置文件,主要是设计hdfs 
hive.allow-drop-table=true      #给删表权限


其他配置如下可参考官网:https://prestodb.io/docs/current/connector/hive.html https://prestodb.io/docs/current/connector/hive-security.html

eg:

presto部署架构 presto安装部署_结点_04

 

(6)

这些都配置好后,就要启动presto,步骤如下:
a、在bin目录下启动服务:bin/launcher start bin/launcher start

b、命令行启动:下载启动jar包:presto-cli-0.191-executable.jar,下载链接为: https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.191/presto-cli-0.191-executable.jar

c、下载下来后改个名字为presto,放在bin目录下,然后给个执行权限:chmod +x presto ,
d、连接hive,并启动:./presto --server localhost:8080 --catalog hive --schema default

e、如果要关闭presto服务,执行:bin/launcher stop

 

 

记录学习和生活的酸甜苦辣.....哈哈哈